I completeley reworked my patch but haven't yet the time to finish that
work since i was on a holiday trip and now moving to my new flat.

I will try to look over the stuff tomorrow/this week but cannot guarantee :-(

As far as i remember there was a failure in missinterpreting 'On' what
should resolve to 1 and then to the default value which should be 4K.
The main pronlem is that we have three parameters for either chunk size
when ob works with chunked output or initial size/block size when ob
works with full buffering. My new patch splits up these three parameters.

Will i have the time to finish that work before php 4.3 or should i wait
until 4.3 is branched? There could be many problems in the reworked
patch but hopefully most problems are known now and we have people
who seem to find any problems within the ob stuff very fast.

marcus

At 16:55 30.09.2002, Yasuo Ohgaki wrote:
>Zeev Suraski wrote:
>>Yasuo - this used to work in PHP 4.2 - setting zlib.output_compression = 
>>1 should enable the default size of 4096 bytes...  Did you do something 
>>that could have broken it?
>
>That's what I thought, too. 1 enable buffer with default chunk
>size. IIRC, anything less than certain size is initialized with
>default or minimum chunk size, isn't it? At least, it was
>something like that.
>
>I don't think I change/broke it, since I didn't see any problem
>in it. Most of my changes are in 4.2.0, not in 4.3.0-dev.
>
>Marcus, how about you? I remember you have been changing chunk
>size, etc, recently.
>
>--
>Yasuo Ohgaki
>
>
>>Zeev
>>At 13:18 30/09/2002, Wez Furlong wrote:
>>
>>>wez             Mon Sep 30 06:18:06 2002 EDT
>>>
>>>   Modified files:
>>>     /php4/ext/zlib      zlib.c
>>>     /php4/main  output.c
>>>   Log:
>>>   Fix infinite recursion bug when using zlib output compression.
>>>   Cause: the chunk size is taken from the zlib.output_compression setting,
>>>   which is 0 or 1.  This causes the block_size for output buffer to be set
>>>   to 0 (1 / 2) and thus causes infinite recursion in php_ob_allocate().
>>>   Solution: use a value of 0 for the chunk size which will use the default
>>>   sizes.  Also add a sanity check which will default the block_size to 1
>>>   if it ends up as 0.
>>>
>>>
>>>Index: php4/ext/zlib/zlib.c
>>>diff -u php4/ext/zlib/zlib.c:1.149 php4/ext/zlib/zlib.c:1.150
>>>--- php4/ext/zlib/zlib.c:1.149  Tue Sep  3 18:54:02 2002
>>>+++ php4/ext/zlib/zlib.c        Mon Sep 30 06:18:06 2002
>>>@@ -18,7 +18,7 @@
>>>     |          Jade Nicoletti 
>>> <[EMAIL PROTECTED]>                           |
>>>
>>>+----------------------------------------------------------------------+
>>>   */
>>>-/* $Id: zlib.c,v 1.149 2002/09/03 22:54:02 sniper Exp $ */
>>>+/* $Id: zlib.c,v 1.150 2002/09/30 10:18:06 wez Exp $ */
>>>  #define IS_EXT_MODULE
>>>
>>>  #ifdef HAVE_CONFIG_H
>>>@@ -230,6 +230,8 @@
>>>         ZLIBG(ob_gzhandler_status) = 0;
>>>         ZLIBG(ob_gzip_coding) = 0;
>>>         if (chunk_size) {
>>>+               if (chunk_size == 1)
>>>+                       chunk_size = 0; /* use the default size */
>>>                 php_enable_output_compression(chunk_size TSRMLS_CC);
>>>         }
>>>         return SUCCESS;
>>>Index: php4/main/output.c
>>>diff -u php4/main/output.c:1.121 php4/main/output.c:1.122
>>>--- php4/main/output.c:1.121    Mon Sep 23 10:18:42 2002
>>>+++ php4/main/output.c  Mon Sep 30 06:18:06 2002
>>>@@ -18,7 +18,7 @@
>>>
>>>+----------------------------------------------------------------------+
>>>  */
>>>
>>>-/* $Id: output.c,v 1.121 2002/09/23 14:18:42 zeev Exp $ */
>>>+/* $Id: output.c,v 1.122 2002/09/30 10:18:06 wez Exp $ */
>>>
>>>  #include "php.h"
>>>  #include "ext/standard/head.h"
>>>@@ -132,6 +132,8 @@
>>>         if (chunk_size) {
>>>                 initial_size = (chunk_size*3/2);
>>>                 block_size = chunk_size/2;
>>>+               if (block_size == 0)
>>>+                       block_size = 1;
>>>         } else {
>>>                 initial_size = 40*1024;
>>>                 block_size = 10*1024;
>>>
>>>
>>>
>>>--
>>>PHP CVS Mailing List (http://www.php.net/)
>>>To unsubscribe, visit: http://www.php.net/unsub.php
>


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to