From: Sascha Schumann Date: Sat, 15 Jan 2000 19:51:44 +0000 (+0000) Subject: (php_sockwait_for_data) clean up X-Git-Tag: BEFORE_PRE_SHUTDOWN_REVERSE_PATCH~14 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=44a712d8106f58059963a183942031b0a92a3021;p=php (php_sockwait_for_data) clean up --- 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; } }