cvs: php-src(PHP_4_4) / NEWS /ext/sockets sockets.c

From: Date: Thu, 03 Nov 2005 14:58:45 +0000
Subject: cvs: php-src(PHP_4_4) / NEWS /ext/sockets sockets.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-34976@lists.php.net to get a copy of this message
mike Thu Nov 3 09:58:45 2005 EDT Modified files: (Branch: PHP_4_4) /php-src NEWS /php-src/ext/sockets sockets.c Log: - fixed bug #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer parameter on Windows) http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.920.2.67&r2=1.1247.2.920.2.68&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1247.2.920.2.67 php-src/NEWS:1.1247.2.920.2.68 --- php-src/NEWS:1.1247.2.920.2.67 Wed Nov 2 12:58:02 2005 +++ php-src/NEWS Thu Nov 3 09:58:38 2005 @@ -6,6 +6,8 @@ - Fixed bug #35059 (Apache2 crash with mod_rewrite). (Ilia) - Fixed bug #34996 (ImageTrueColorToPalette() crashes when ncolors is zero). (Tony) +- Fixed bug #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer + parameter on Windows). (Mike) - Fixed bug #33760 (cURL needs to implement CRYPTO_callback functions to prevent locking). (Mike) http://cvs.php.net/diff.php/php-src/ext/sockets/sockets.c?r1=1.125.2.29&r2=1.125.2.29.2.1&ty=u Index: php-src/ext/sockets/sockets.c diff -u php-src/ext/sockets/sockets.c:1.125.2.29 php-src/ext/sockets/sockets.c:1.125.2.29.2.1 --- php-src/ext/sockets/sockets.c:1.125.2.29 Thu May 12 12:27:21 2005 +++ php-src/ext/sockets/sockets.c Thu Nov 3 09:58:43 2005 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sockets.c,v 1.125.2.29 2005/05/12 16:27:21 tony2001 Exp $ */ +/* $Id: sockets.c,v 1.125.2.29.2.1 2005/11/03 14:58:43 mike Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1842,6 +1842,7 @@ zval *arg1; struct linger linger_val; struct timeval tv; + int timeout = 0; socklen_t optlen; php_socket *php_sock; int other_val; @@ -1871,12 +1872,24 @@ break; case SO_RCVTIMEO: case SO_SNDTIMEO: +#ifndef PHP_WIN32 optlen = sizeof(tv); if (getsockopt(php_sock->bsd_socket, level, optname, (char*)&tv, &optlen) != 0) { PHP_SOCKET_ERROR(php_sock, "unable to retrieve socket option", errno); RETURN_FALSE; } +#else + optlen = sizeof(int); + + if (getsockopt(php_sock->bsd_socket, level, optname, (char*)&timeout, &optlen) != 0) { + PHP_SOCKET_ERROR(php_sock, "unable to retrieve socket option", errno); + RETURN_FALSE; + } + + tv.tv_sec = timeout ? timeout / 1000 : 0; + tv.tv_usec = timeout ? (timeout * 1000) % 1000000 : 0; +#endif if (array_init(return_value) == FAILURE) { RETURN_FALSE; @@ -1908,7 +1921,7 @@ struct linger lv; struct timeval tv; php_socket *php_sock; - int ov, optlen, retval; + int ov, optlen, retval, timeout; long level, optname; void *opt_ptr; @@ -1968,11 +1981,16 @@ convert_to_long_ex(sec); convert_to_long_ex(usec); +#ifndef PHP_WIN32 tv.tv_sec = Z_LVAL_PP(sec); tv.tv_usec = Z_LVAL_PP(usec); - optlen = sizeof(tv); opt_ptr = &tv; +#else + timeout = Z_LVAL_PP(sec) * 1000 + Z_LVAL_PP(usec) / 1000; + optlen = sizeof(int); + opt_ptr = &timeout; +#endif break; default: convert_to_long_ex(&arg4);

« previous php.cvs (#34976) next »