sas             Thu Jan 30 16:06:35 2003 EDT

  Modified files:              
    /php4/main  streams.c 
  Log:
  Fix sticky EOF problem
  
  Sometimes streams signal a temporary EOF, because all current data
  has been consumed. But that does not preclude the possibility that
  more data will become available later.
  
  Thus we must not treat eof in the read path as final.
  
  Now, "tail -f" like scripts work again.
  
  
Index: php4/main/streams.c
diff -u php4/main/streams.c:1.142 php4/main/streams.c:1.143
--- php4/main/streams.c:1.142   Mon Jan  6 18:27:03 2003
+++ php4/main/streams.c Thu Jan 30 16:06:34 2003
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: streams.c,v 1.142 2003/01/06 23:27:03 wez Exp $ */
+/* $Id: streams.c,v 1.143 2003/01/30 21:06:34 sas Exp $ */
 
 #define _GNU_SOURCE
 #include "php.h"
@@ -521,8 +521,7 @@
        if (stream->writepos - stream->readpos < (off_t)size) {
                size_t justread = 0;
        
-               if (stream->eof)
-                       return;
+               /* ignore eof here; the underlying state might have changed */
                
                /* no; so lets fetch more data */
                
@@ -581,7 +580,8 @@
                        didread += toread;
                }
 
-               if (size == 0 || stream->eof) {
+               /* ignore eof here; the underlying state might have changed */
+               if (size == 0) {
                        break;
                }
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to