Does this fix have possibly anything to do with bug #26863 ??
And how about doing a nice little MFH?
--Jani
On Wed, 4 Feb 2004, Wez Furlong wrote:
>wez Wed Feb 4 17:46:45 2004 EDT
>
> Modified files:
> /php-src/main/streams streams.c transports.c xp_socket.c
> Log:
> Fix a bug in the persistent socket liveness checks and feof(); they were
> using the default socket timeout of 60 seconds before returning the socket
> to the calling script. The reason they were using that value is that the
> same code is used for feof(), so the fix is allowing the caller to
> indicate the timeout value for liveness checks.
>
> A possible remaining issue now is that 0 second timeout[1] for pfsockopen
> is possibly too short; it's impossible to specify a sane value for all
> possible uses, so maybe we need a stream context or an .ini option to
> control this, or maybe use the timeout value that was passed to
> pfsockopen().
>
> # [1] by timeout, I mean the time that PHP will wait for data on a
> # persistent socket before deciding if a new connection should be made;
> # NOT the timeout while waiting for a new connection to be established.
>
>
>http://cvs.php.net/diff.php/php-src/main/streams/streams.c?r1=1.48&r2=1.49&ty=u
>Index: php-src/main/streams/streams.c
>diff -u php-src/main/streams/streams.c:1.48 php-src/main/streams/streams.c:1.49
>--- php-src/main/streams/streams.c:1.48 Wed Jan 28 17:21:54 2004
>+++ php-src/main/streams/streams.c Wed Feb 4 17:46:44 2004
>@@ -19,7 +19,7 @@
> +----------------------------------------------------------------------+
> */
>
>-/* $Id: streams.c,v 1.48 2004/01/28 22:21:54 pollita Exp $ */
>+/* $Id: streams.c,v 1.49 2004/02/04 22:46:44 wez Exp $ */
>
> #define _GNU_SOURCE
> #include "php.h"
>@@ -602,9 +602,10 @@
> return 0;
> }
>
>+ /* use the configured timeout when checking eof */
> if (!stream->eof && PHP_STREAM_OPTION_RETURN_ERR ==
> php_stream_set_option(stream, PHP_STREAM_OPTION_CHECK_LIVENESS,
>- 0, NULL)) {
>+ -1, NULL)) {
> stream->eof = 1;
> }
>
>http://cvs.php.net/diff.php/php-src/main/streams/transports.c?r1=1.11&r2=1.12&ty=u
>Index: php-src/main/streams/transports.c
>diff -u php-src/main/streams/transports.c:1.11 php-src/main/streams/transports.c:1.12
>--- php-src/main/streams/transports.c:1.11 Tue Jan 27 17:40:44 2004
>+++ php-src/main/streams/transports.c Wed Feb 4 17:46:44 2004
>@@ -16,7 +16,7 @@
> +----------------------------------------------------------------------+
> */
>
>-/* $Id: transports.c,v 1.11 2004/01/27 22:40:44 wez Exp $ */
>+/* $Id: transports.c,v 1.12 2004/02/04 22:46:44 wez Exp $ */
>
> #include "php.h"
> #include "php_streams_int.h"
>@@ -74,6 +74,8 @@
> if (persistent_id) {
> switch(php_stream_from_persistent_id(persistent_id, &stream
> TSRMLS_CC)) {
> case PHP_STREAM_PERSISTENT_SUCCESS:
>+ /* use a 0 second timeout when checking if the socket
>+ * has already died */
> if (PHP_STREAM_OPTION_RETURN_OK ==
> php_stream_set_option(stream, PHP_STREAM_OPTION_CHECK_LIVENESS, 0, NULL)) {
> return stream;
> }
>http://cvs.php.net/diff.php/php-src/main/streams/xp_socket.c?r1=1.21&r2=1.22&ty=u
>Index: php-src/main/streams/xp_socket.c
>diff -u php-src/main/streams/xp_socket.c:1.21 php-src/main/streams/xp_socket.c:1.22
>--- php-src/main/streams/xp_socket.c:1.21 Thu Jan 8 03:17:59 2004
>+++ php-src/main/streams/xp_socket.c Wed Feb 4 17:46:44 2004
>@@ -16,7 +16,7 @@
> +----------------------------------------------------------------------+
> */
>
>-/* $Id: xp_socket.c,v 1.21 2004/01/08 08:17:59 andi Exp $ */
>+/* $Id: xp_socket.c,v 1.22 2004/02/04 22:46:44 wez Exp $ */
>
> #include "php.h"
> #include "ext/standard/file.h"
>@@ -230,10 +230,14 @@
> char buf;
> int alive = 1;
>
>- if (sock->timeout.tv_sec == -1) {
>- tv.tv_sec = FG(default_socket_timeout);
>+ if (value == -1) {
>+ if (sock->timeout.tv_sec == -1) {
>+ tv.tv_sec = FG(default_socket_timeout);
>+ } else {
>+ tv = sock->timeout;
>+ }
> } else {
>- tv = sock->timeout;
>+ tv.tv_sec = value;
> }
>
> if (sock->socket == -1) {
>
>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php