From:             [EMAIL PROTECTED]
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



-- 
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]

Reply via email to