mike Thu Apr 20 17:52:02 2006 UTC
Modified files:
/php-src/main/streams streams.c
Log:
MFB: Fix reading stream filters never notified about EOF
http://cvs.php.net/viewcvs.cgi/php-src/main/streams/streams.c?r1=1.121&r2=1.122&diff_format=u
Index: php-src/main/streams/streams.c
diff -u php-src/main/streams/streams.c:1.121
php-src/main/streams/streams.c:1.122
--- php-src/main/streams/streams.c:1.121 Tue Apr 18 19:09:31 2006
+++ php-src/main/streams/streams.c Thu Apr 20 17:52:01 2006
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.121 2006/04/18 19:09:31 pollita Exp $ */
+/* $Id: streams.c,v 1.122 2006/04/20 17:52:01 mike Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -440,7 +440,7 @@
/* allocate a buffer for reading chunks */
chunk_buf = emalloc(stream->chunk_size);
- while (!err_flag && (stream->writepos - stream->readpos <
(off_t)size)) {
+ while (!stream->eof && !err_flag && (stream->writepos -
stream->readpos < (off_t)size)) {
size_t justread = 0;
int flags;
php_stream_bucket *bucket;
@@ -449,7 +449,7 @@
/* read a chunk into a bucket */
justread = stream->ops->read(stream, chunk_buf,
stream->chunk_size TSRMLS_CC);
- if (justread != (size_t)-1) {
+ if (justread && justread != (size_t)-1) {
bucket = php_stream_bucket_new(stream,
chunk_buf, justread, 0, 0 TSRMLS_CC);
/* after this call, bucket is owned by the
brigade */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php