]> granicus.if.org Git - php/commitdiff
Fixed bug #51269 (zlib.output_compression Overwrites Vary Header).
authorAdam Harvey <aharvey@php.net>
Thu, 11 Mar 2010 06:20:22 +0000 (06:20 +0000)
committerAdam Harvey <aharvey@php.net>
Thu, 11 Mar 2010 06:20:22 +0000 (06:20 +0000)
ext/zlib/tests/bug51269.phpt [new file with mode: 0644]
ext/zlib/zlib.c

diff --git a/ext/zlib/tests/bug51269.phpt b/ext/zlib/tests/bug51269.phpt
new file mode 100644 (file)
index 0000000..6b97bac
--- /dev/null
@@ -0,0 +1,21 @@
+--TEST--
+Bug #51269 (zlib.output_compression Overwrites Vary Header)
+--INI--
+zlib.output_compression=1
+--ENV--
+HTTP_ACCEPT_ENCODING=gzip
+--SKIPIF--
+<?php 
+if (!extension_loaded("zlib")) die("skip zlib required");
+?>
+--FILE--
+<?php
+header('Vary: Cookie');
+echo 'foo';
+?>
+--EXPECTF--
+%s
+--EXPECTHEADERS--
+Vary: Cookie
+Content-Encoding: gzip
+Vary: Accept-Encoding
index e46c9ca04902f63fa2924054724a676a35fb82fe..a7e97952d6acfaf5b9f5eca9dd4fcd04121c5e67 100644 (file)
@@ -102,7 +102,7 @@ static int php_zlib_output_handler(void **handler_context, php_output_context *o
                        -Vary: $ HTTP_ACCEPT_ENCODING= ./sapi/cgi/php <<<'<?php ob_start("ob_gzhandler"); echo "foo\n"; ob_end_clean();'
                */
                if (output_context->op != (PHP_OUTPUT_HANDLER_START|PHP_OUTPUT_HANDLER_CLEAN|PHP_OUTPUT_HANDLER_FINAL)) {
-                       sapi_add_header_ex(ZEND_STRL("Vary: Accept-Encoding"), 1, 1 TSRMLS_CC);
+                       sapi_add_header_ex(ZEND_STRL("Vary: Accept-Encoding"), 1, 0 TSRMLS_CC);
                }
                return FAILURE;
        }
@@ -196,7 +196,7 @@ static int php_zlib_output_handler(void **handler_context, php_output_context *o
                                        deflateEnd(&ctx->Z);
                                        return FAILURE;
                        }
-                       sapi_add_header_ex(ZEND_STRL("Vary: Accept-Encoding"), 1, 1 TSRMLS_CC);
+                       sapi_add_header_ex(ZEND_STRL("Vary: Accept-Encoding"), 1, 0 TSRMLS_CC);
                        php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC);
                }