From: Ilia Alshanetsky Date: Sun, 4 Dec 2005 17:30:43 +0000 (+0000) Subject: Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). X-Git-Tag: php-5.1.2RC1~226 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15afc78f856439cfe78c9cd501b48b45f7e38553;p=php Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). --- diff --git a/NEWS b/NEWS index 84569d6113..41a3a9a255 100644 --- a/NEWS +++ b/NEWS @@ -52,6 +52,8 @@ PHP NEWS - Fixed bug #35381 (ssl library is not initialized properly). (Alan) - Fixed bug #35373 (HP-UX "alias not allowed in this configuration"). (Dmitry) - Fixed bug #35103 (mysqli handles bad unsigned (big)int incorrectly).(Andrey) +- Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). + (Nuno, Ilia) - Fixed bug #35028 (SimpleXML object fails FALSE test). (Marcus) 28 Nov 2005, PHP 5.1.1 diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 9113264a01..e36522b5cd 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -861,7 +861,19 @@ PHP_FUNCTION(socket_read) } if (retval == -1) { - PHP_SOCKET_ERROR(php_sock, "unable to read from socket", errno); + /* if the socket is in non-blocking mode and there's no data to read, + don't output any error, as this is a normal situation, and not an error */ + if (errno == EAGAIN +#ifdef EWOULDBLOCK + || errno == EWOULDBLOCK +#endif + ) { + php_sock->error = errno; + SOCKETS_G(last_error) = errno; + } else { + PHP_SOCKET_ERROR(php_sock, "unable to read from socket", errno); + } + efree(tmpbuf); RETURN_FALSE; }