ID: 9347 Updated by: sniper Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Closed Bug Type: Sockets related Operating system: PHP Version: 4.0 Latest CVS (19/02/2001) Assigned To: Comments: This is not correct. The php_read() will loop until it get's some data in case of EAGAIN. (at least in latest CVS) --Jani Previous Comments: --------------------------------------------------------------------------- [2001-02-19 17:37:18] [EMAIL PROTECTED] err did the patch backwards. --- ext/sockets/sockets.c Mon Feb 19 16:52:42 2001 +++ ext/sockets/mysocket.c Mon Feb 19 16:53:20 2001 @@ -635,7 +635,7 @@ if (m > 0) { t++; n++; - } else if (m == 0) { + } else if (m <= 0) { no_read++; if (nonblock && no_read >= 2) { return n; /* The first pass, m always is 0, so no_read becomes 1 --------------------------------------------------------------------------- [2001-02-19 17:11:44] [EMAIL PROTECTED] The php_read function does not seem to handle non-blocking sockets correctly. The read function will return a negative value when EAGAIN (no data available when in nonblocking mode) error occurs. (from the man page: On error, -1 is returned, and errno is set appropriately.) Here is my quick n' dirty patch: --- ext/sockets/mysocket.c Mon Feb 19 16:53:20 2001 +++ ext/sockets/sockets.c Mon Feb 19 16:52:42 2001 @@ -635,7 +635,7 @@ if (m > 0) { t++; n++; - } else if (m <= 0) { + } else if (m == 0) { no_read++; if (nonblock && no_read >= 2) { return n; /* The first pass, m always is 0, so no_read becomes 1 enjoy. -tem --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=9347&edit=2 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]