wez Fri Nov 28 17:11:35 2003 EDT
Modified files: (Branch: PHP_4_3)
/php-src/main network.c streams.c
Log:
Fix for bug #25939; feof not working correctly for sockets.
Possibly also fixes #23220; warnings issued by fgets on ssl sockets.
Index: php-src/main/network.c
diff -u php-src/main/network.c:1.83.2.20 php-src/main/network.c:1.83.2.21
--- php-src/main/network.c:1.83.2.20 Fri Oct 17 07:09:49 2003
+++ php-src/main/network.c Fri Nov 28 17:11:34 2003
@@ -16,7 +16,7 @@
| Streams work by Wez Furlong <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: network.c,v 1.83.2.20 2003/10/17 11:09:49 sas Exp $ */
+/* $Id: network.c,v 1.83.2.21 2003/11/28 22:11:34 wez Exp $ */
/*#define DEBUG_MAIN_NETWORK 1*/
@@ -1139,8 +1139,14 @@
int alive = 1;
int fd = sock->socket;
fd_set rfds;
- struct timeval tv = {0, 0};
+ struct timeval tv;
char buf;
+
+ if (sock->timeout.tv_sec == -1) {
+ tv.tv_sec = FG(default_socket_timeout);
+ } else {
+ tv = sock->timeout;
+ }
/* logic: if the select call indicates that there is data to
* be read, but a read returns 0 bytes of data, then the socket
Index: php-src/main/streams.c
diff -u php-src/main/streams.c:1.125.2.83 php-src/main/streams.c:1.125.2.84
--- php-src/main/streams.c:1.125.2.83 Thu Nov 27 19:00:34 2003
+++ php-src/main/streams.c Fri Nov 28 17:11:34 2003
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.125.2.83 2003/11/28 00:00:34 iliaa Exp $ */
+/* $Id: streams.c,v 1.125.2.84 2003/11/28 22:11:34 wez Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -659,6 +659,10 @@
if (stream->writepos - stream->readpos > 0)
return 0;
+ if (!stream->eof && php_stream_is(stream, PHP_STREAM_IS_SOCKET)) {
+ stream->eof = !_php_network_is_stream_alive(stream);
+ }
+
return stream->eof;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php