Bug #8994 Updated: socket_set_timeout works only once
| From: | sterling@php.net | Date: | Thu, 26 Apr 2001 13:56:19 +0000 |
| Subject: | Bug #8994 Updated: socket_set_timeout works only once | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-52488@lists.php.net to get a copy of this message | ||
ID: 8994
Updated by: sterling
Reported By: tom.anheyer@berlinonline.de
Status: Closed
Bug Type: Network related
PHP Version: 4.0.4pl1
Assigned To:
Comments:
Applied in CVS, don't know if it will make 4.0.5 this late
in the game. Thanks!
Previous Comments:
---------------------------------------------------------------------------
[2001-04-26 09:49:54] sterling@php.net
Applied in CVS, don't know if it will make 4.0.5 this late
in the game. Thanks!
---------------------------------------------------------------------------
[2001-03-22 04:11:22] tom.anheyer@berlinonline.de
please fix this issue for the final 4.0.5. It is not fixed
in 4.0.5RC1. I think it's easy to fix.
---------------------------------------------------------------------------
[2001-03-22 04:11:20] tom.anheyer@berlinonline.de
please fix this issue for the final 4.0.5. It is not fixed
in 4.0.5RC1. I think it's easy to fix.
---------------------------------------------------------------------------
[2001-01-30 05:36:45] tom.anheyer@berlinonline.de
socket_set_timeout() works only once.
This is because the internal function php_sock_fgets() checks the timout flag before calling
php_sockread_internal(). If blocking IO php_sockwait_for_data() is called next. This function
resets the socket timeout flag.
A possible solution is to reset the flag in php_sockset_timeout() like the following patch. Removing
the timeout flag test from php_sock_fgets() is also possible maybe.
diff -c /usr/src/packages/BUILD/php-4.0.4pl1/ext/standard/fsock.c-orig
/usr/src/packages/BUILD/php-4.0.4pl1/ext/standard/fsock.c
*** /usr/src/packages/BUILD/php-4.0.4pl1/ext/standard/fsock.c-orig Tue Jan 30 11:19:59 2001
--- /usr/src/packages/BUILD/php-4.0.4pl1/ext/standard/fsock.c Tue Jan 30 11:19:59 2001
***************
*** 596,601 ****
--- 596,602 ----
SOCK_FIND(sock, socket);
sock->timeout = *timeout;
+ sock->timeout_event = 0;
}
#define SOCK_FIND_AND_READ_MAX(max)
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=8994&edit=2