wez Wed Jan 14 09:54:15 2004 EDT Modified files: (Branch: PHP_4_3) /php-src/main network.c Log: Probable fix for: Bug #25575 stream_set_blocking with STDIN doesnt block Index: php-src/main/network.c diff -u php-src/main/network.c:1.83.2.22 php-src/main/network.c:1.83.2.23 --- php-src/main/network.c:1.83.2.22 Sat Nov 29 07:02:40 2003 +++ php-src/main/network.c Wed Jan 14 09:54:14 2004 @@ -16,7 +16,7 @@ | Streams work by Wez Furlong <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: network.c,v 1.83.2.22 2003/11/29 12:02:40 wez Exp $ */ +/* $Id: network.c,v 1.83.2.23 2004/01/14 14:54:14 wez Exp $ */ /*#define DEBUG_MAIN_NETWORK 1*/ @@ -628,6 +628,22 @@ memset(sock, 0, sizeof(php_netstream_data_t)); sock->is_blocked = 1; + +#if !defined(PHP_WIN32) && (defined(O_NONBLOCK) || defined(O_NDELAY)) + if (socket >= 0 && socket < 3) { + /* mini-hack: if we are opening stdin, stdout or stderr, + * we need to check to see if they are currently in + * blocking or non-blocking mode. */ + int flags = fcntl(socket, F_GETFL); + +#ifdef O_NONBLOCK + sock->is_blocked = !(flags & O_NONBLOCK); +#else + sock->is_blocked = !(flags & O_NDELAY); +#endif + } +#endif + sock->timeout.tv_sec = FG(default_socket_timeout); sock->timeout.tv_usec = 0; sock->socket = socket;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php