dmitry Tue Jul 24 14:24:44 2007 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/main/streams xp_socket.c Log: Fixed bug #41984 (Hangs on large SoapClient requests) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.852&r2=1.2027.2.547.2.853&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.852 php-src/NEWS:1.2027.2.547.2.853 --- php-src/NEWS:1.2027.2.547.2.852 Tue Jul 24 14:21:36 2007 +++ php-src/NEWS Tue Jul 24 14:24:44 2007 @@ -72,6 +72,7 @@ - Fixed bug #42015 (ldap_rename(): server error "DSA is unwilling to perform"). (bob at mroczka dot com, Jani) - Fixed bug #41989 (move_uploaded_file() & relative path in ZTS mode). (Tony) +- Fixed bug #41984 (Hangs on large SoapClient requests). (Dmitry) - Fixed bug #41983 (Error Fetching http headers terminated by '\n'). (Dmitry) - Fixed bug #41964 (strtotime returns a timestamp for non-time string of pattern '(A|a) .+'). (Derick) http://cvs.php.net/viewvc.cgi/php-src/main/streams/xp_socket.c?r1=1.33.2.2.2.5&r2=1.33.2.2.2.6&diff_format=u Index: php-src/main/streams/xp_socket.c diff -u php-src/main/streams/xp_socket.c:1.33.2.2.2.5 php-src/main/streams/xp_socket.c:1.33.2.2.2.6 --- php-src/main/streams/xp_socket.c:1.33.2.2.2.5 Tue Jul 17 13:28:44 2007 +++ php-src/main/streams/xp_socket.c Tue Jul 24 14:24:44 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xp_socket.c,v 1.33.2.2.2.5 2007/07/17 13:28:44 jani Exp $ */ +/* $Id: xp_socket.c,v 1.33.2.2.2.6 2007/07/24 14:24:44 dmitry Exp $ */ #include "php.h" #include "ext/standard/file.h" @@ -31,6 +31,10 @@ #include <sys/un.h> #endif +#ifndef MSG_DONTWAIT +# define MSG_DONTWAIT 0 +#endif + php_stream_ops php_stream_generic_socket_ops; PHPAPI php_stream_ops php_stream_socket_ops; php_stream_ops php_stream_udp_socket_ops; @@ -59,7 +63,7 @@ ptimeout = &sock->timeout; retry: - didwrite = send(sock->socket, buf, count, 0); + didwrite = send(sock->socket, buf, count, (sock->is_blocked && ptimeout) ? MSG_DONTWAIT : 0); if (didwrite <= 0) { long err = php_socket_errno(); @@ -148,7 +152,7 @@ return 0; } - nr_bytes = recv(sock->socket, buf, count, 0); + nr_bytes = recv(sock->socket, buf, count, (sock->is_blocked && sock->timeout.tv_sec != -1) ? MSG_DONTWAIT : 0); stream->eof = (nr_bytes == 0 || (nr_bytes == -1 && php_socket_errno() != EWOULDBLOCK));
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php