[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/zlib zlib.c

2009-05-25 Thread Jani Taskinen
janiTue May 26 04:47:05 2009 UTC

  Modified files:  (Branch: PHP_5_2)
/php-srcNEWS 
/php-src/ext/zlib   zlib.c 
  Log:
  MFH:- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped)
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1519r2=1.2027.2.547.2.1520diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1519 php-src/NEWS:1.2027.2.547.2.1520
--- php-src/NEWS:1.2027.2.547.2.1519Mon May 25 16:30:37 2009
+++ php-src/NEWSTue May 26 04:47:04 2009
@@ -125,6 +125,8 @@
   data). (Arnaud)
 - Fixed bug #42414 (some odbc_*() functions incompatible with Oracle ODBC 
   driver). (jhml at gmx dot net)
+- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped).
+  (Scott, Edward Z. Yang)
 - Fixed bug #38805 (PDO truncates text from SQL Server text data type
   field). (Steph)
 
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib.c?r1=1.183.2.6.2.10r2=1.183.2.6.2.11diff_format=u
Index: php-src/ext/zlib/zlib.c
diff -u php-src/ext/zlib/zlib.c:1.183.2.6.2.10 
php-src/ext/zlib/zlib.c:1.183.2.6.2.11
--- php-src/ext/zlib/zlib.c:1.183.2.6.2.10  Tue May 26 04:45:21 2009
+++ php-src/ext/zlib/zlib.c Tue May 26 04:47:05 2009
@@ -19,7 +19,7 @@
+--+
  */
 
-/* $Id: zlib.c,v 1.183.2.6.2.10 2009/05/26 04:45:21 jani Exp $ */
+/* $Id: zlib.c,v 1.183.2.6.2.11 2009/05/26 04:47:05 jani Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -987,7 +987,7 @@
 {
zend_bool do_start, do_end;
 
-   if (!ZLIBG(output_compression)) {
+   if (!ZLIBG(output_compression) || SG(sapi_headers).http_response_code 
== 204 || SG(sapi_headers).http_response_code == 304) {
*handled_output = NULL;
} else {
do_start = (mode  PHP_OUTPUT_HANDLER_START ? 1 : 0);



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



[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/zlib zlib.c

2009-05-25 Thread Jani Taskinen
janiTue May 26 05:57:40 2009 UTC

  Modified files:  (Branch: PHP_5_2)
/php-srcNEWS 
/php-src/ext/zlib   zlib.c 
  Log:
  MF53: - Fixed bug #45202 (zlib.output_compression can not be set with 
ini_set()
  # This is fixed in HEAD already. :)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1520r2=1.2027.2.547.2.1521diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1520 php-src/NEWS:1.2027.2.547.2.1521
--- php-src/NEWS:1.2027.2.547.2.1520Tue May 26 04:47:04 2009
+++ php-src/NEWSTue May 26 05:57:40 2009
@@ -113,6 +113,8 @@
 - Fixed bug #45614 (ArrayIterator::current(), ::key() can show 1st private
   prop of wrapped object). (robin_fernandes at uk dot ibm dot com, Arnaud)
 - Fixed bug #45540 (stream_context_create creates bad http request). (Arnaud)
+- Fixed bug #45202 (zlib.output_compression can not be set with ini_set()).
+  (Jani)
 - Fixed bug #45191 (error_log ignores date.timezone php.ini val when
   setting logging timestamps). (Derick)
 - Fixed bug #45092 (header HTTP context option not being used when compiled
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib.c?r1=1.183.2.6.2.11r2=1.183.2.6.2.12diff_format=u
Index: php-src/ext/zlib/zlib.c
diff -u php-src/ext/zlib/zlib.c:1.183.2.6.2.11 
php-src/ext/zlib/zlib.c:1.183.2.6.2.12
--- php-src/ext/zlib/zlib.c:1.183.2.6.2.11  Tue May 26 04:47:05 2009
+++ php-src/ext/zlib/zlib.c Tue May 26 05:57:40 2009
@@ -19,7 +19,7 @@
+--+
  */
 
-/* $Id: zlib.c,v 1.183.2.6.2.11 2009/05/26 04:47:05 jani Exp $ */
+/* $Id: zlib.c,v 1.183.2.6.2.12 2009/05/26 05:57:40 jani Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -88,7 +88,7 @@
 /* True globals, no need for thread safety */
 static const int gz_magic[2] = {0x1f, 0x8b};   /* gzip magic header */
 
-static int php_enable_output_compression(int buffer_size TSRMLS_DC);
+static int php_zlib_output_compression_start(TSRMLS_D);
 
 static PHP_MINIT_FUNCTION(zlib);
 static PHP_MSHUTDOWN_FUNCTION(zlib);
@@ -176,6 +176,7 @@
 /* {{{ OnUpdate_zlib_output_compression */
 static PHP_INI_MH(OnUpdate_zlib_output_compression)
 {
+   int status, int_value;
char *ini_value;
 
if (new_value == NULL) {
@@ -190,8 +191,10 @@
new_value_length = sizeof(1);
}
 
+   int_value = zend_atoi(new_value, new_value_length);
ini_value = zend_ini_string(output_handler, sizeof(output_handler), 
0);
-   if (ini_value != NULL  strlen(ini_value) != 0  zend_atoi(new_value, 
new_value_length) != 0) {
+
+   if (ini_value  *ini_value  int_value) {
php_error_docref(ref.outcontrol TSRMLS_CC, E_CORE_ERROR, 
Cannot use both zlib.output_compression and output_handler together!!);
return FAILURE;
}
@@ -201,9 +204,13 @@
return FAILURE;
}
 
-   OnUpdateLong(entry, new_value, new_value_length, mh_arg1, mh_arg2, 
mh_arg3, stage TSRMLS_CC);
+   status = OnUpdateLong(entry, new_value, new_value_length, mh_arg1, 
mh_arg2, mh_arg3, stage TSRMLS_CC);
 
-   return SUCCESS;
+   if (stage == PHP_INI_STAGE_RUNTIME  int_value) {
+   status = php_zlib_output_compression_start(TSRMLS_C);
+   }
+
+   return status;
 }
 /* }}} */
 
@@ -257,18 +264,10 @@
  */
 static PHP_RINIT_FUNCTION(zlib)
 {
-   uint chunk_size = ZLIBG(output_compression);
-
ZLIBG(ob_gzhandler_status) = 0;
ZLIBG(compression_coding) = 0;
-   if (chunk_size) {
-   if (chunk_size == 1) {
-   chunk_size = 4096; /* use the default size */
-   ZLIBG(output_compression) = chunk_size;
-   }
-   php_enable_output_compression(chunk_size TSRMLS_CC);
-   }
-   return SUCCESS;
+
+   return php_zlib_output_compression_start(TSRMLS_C);
 }
 /* }}} */
 
@@ -1032,6 +1031,24 @@
 }
 /* }}} */
 
+/* {{{ php_zlib_output_compression_start() */
+static int php_zlib_output_compression_start(TSRMLS_D)
+{
+   switch (ZLIBG(output_compression)) {
+   case 0:
+   break;
+   case 1:
+   ZLIBG(output_compression) = 4096;
+   default:
+   /* ZLIBG(compression_coding) should be 0 when zlib 
compression hasn't been started yet.. */
+   if (ZLIBG(compression_coding) == 0) {
+   return 
php_enable_output_compression(ZLIBG(output_compression) TSRMLS_CC);
+   }
+   }
+   return SUCCESS;
+}
+/* }}} */
+
 /*
  * Local variables:
  * tab-width: 4



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