diff options
| author | Sascha Schumann <sas@php.net> | 2000-01-15 19:51:44 +0000 |
|---|---|---|
| committer | Sascha Schumann <sas@php.net> | 2000-01-15 19:51:44 +0000 |
| commit | 44a712d8106f58059963a183942031b0a92a3021 (patch) | |
| tree | 6f21e591dd3cb5ef9db370da7043d46b9e66dd75 | |
| parent | bfc85c288a79efa28d1f491e082dc34a3e046467 (diff) | |
| download | php-git-44a712d8106f58059963a183942031b0a92a3021.tar.gz | |
(php_sockwait_for_data) clean up
| -rw-r--r-- | ext/standard/fsock.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c index 13ce0e72f3..2db885931a 100644 --- a/ext/standard/fsock.c +++ b/ext/standard/fsock.c @@ -532,24 +532,27 @@ static void php_sockwait_for_data(php_sockbuf *sock) { fd_set fdr, tfdr; int retval; - struct timeval timeout; + struct timeval timeout, *ptimeout; FD_ZERO(&fdr); FD_SET(sock->socket, &fdr); sock->timeout_event = 0; + if (timeout.tv_sec == -1) + ptimeout = NULL; + else + ptimeout = &timeout; + while(1) { tfdr = fdr; timeout = sock->timeout; - if (timeout.tv_sec == -1) - retval = select(sock->socket + 1, &tfdr, NULL, NULL, NULL); - else { - retval = select(sock->socket + 1, &tfdr, NULL, NULL, &timeout); - if (retval == 0) - sock->timeout_event = 1; - } - if(retval == 1 || retval == 0) + retval = select(sock->socket + 1, &tfdr, NULL, NULL, ptimeout); + + if (retval == 0) + sock->timeout_event = 1; + + if (retval >= 0) break; } } |
