]> granicus.if.org Git - php/commitdiff
Reverting earlier patch to reintroduce buggy behavior (yes, you heard that right...
authorSara Golemon <pollita@php.net>
Thu, 13 Feb 2003 00:42:06 +0000 (00:42 +0000)
committerSara Golemon <pollita@php.net>
Thu, 13 Feb 2003 00:42:06 +0000 (00:42 +0000)
performance.  This has little consequence given limited filter support in 4.3 branch.  Filters will be redesigned in
5.0 release. For more information see Wez, Ilia, or myself.

ext/standard/http_fopen_wrapper.c

index 12482895b34bac1aa8add29aae04df6b7aacadb9..fd3ad826c4783a2e88267419188a66b8bde5b5f4 100644 (file)
@@ -122,8 +122,11 @@ php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, char *path, ch
        if (stream == NULL)     
                goto out;
 
-       /* avoid buffering issues while reading header */
-       chunk_size = php_stream_set_chunk_size(stream, 1);
+       /* Ordinarily we'd always reduce chunk_size to 1 to avoid filter problems.
+          However, since 4.3 filter support is extremely limited and will be completely rewritten in 5.0
+          we'll accept the unexpected behavior of filtered http streams in favor of improved performance. */
+       if (options & STREAM_WILL_CAST)
+               chunk_size = php_stream_set_chunk_size(stream, 1);
        
        php_stream_context_set(stream, context);
 
@@ -399,8 +402,9 @@ out:
        if (stream)     {
                stream->wrapperdata = response_header;
                php_stream_notify_progress_init(context, 0, file_size);
-               /* Restore original chunk size now that we're done with headers */
-               php_stream_set_chunk_size(stream, chunk_size);
+               /* Restore original chunk size now that we're done with headers (if applicable) */
+               if (options & STREAM_WILL_CAST)
+                       php_stream_set_chunk_size(stream, chunk_size);
                /* as far as streams are concerned, we are now at the start of
                 * the stream */
                stream->position = 0;