PHP 4.0 Bug #9347: php_read does not handle O_NONBLOCK correctly

From: Date: Mon, 19 Feb 2001 22:11:44 +0000
Subject: PHP 4.0 Bug #9347: php_read does not handle O_NONBLOCK correctly
Groups: php.dev 
Request: Send a blank email to php-dev+get-46960@lists.php.net to get a copy of this message
From: tem@iocus.com Operating system: linux (mandrake 7.2) PHP version: 4.0 Latest CVS (19/02/2001) PHP Bug Type: Sockets related Bug description: php_read does not handle O_NONBLOCK correctly 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 -- Edit Bug report at: http://bugs.php.net/?id=9347&edit=1

« previous php.dev (#46960) next »