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