summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-01-15 19:51:44 +0000
committerSascha Schumann <sas@php.net>2000-01-15 19:51:44 +0000
commit44a712d8106f58059963a183942031b0a92a3021 (patch)
tree6f21e591dd3cb5ef9db370da7043d46b9e66dd75
parentbfc85c288a79efa28d1f491e082dc34a3e046467 (diff)
downloadphp-git-44a712d8106f58059963a183942031b0a92a3021.tar.gz
(php_sockwait_for_data) clean up
-rw-r--r--ext/standard/fsock.c21
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;
}
}