cvs: php-src(PHP_4_3) /main network.c streams.c
| From: | Wez Furlong | Date: | Fri, 28 Nov 2003 22:11:35 +0000 |
| Subject: | cvs: php-src(PHP_4_3) /main network.c streams.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-24705@lists.php.net to get a copy of this message | ||
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 <wez@thebrainroom.com> |
+----------------------------------------------------------------------+
*/
-/* $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;
}