Commit:    5cea7a9047ca45c99b107a89d833c2d0dbe96ec8
Author:    Michael Wallner <m...@php.net>         Fri, 9 Aug 2013 11:14:04 +0200
Parents:   b6b425d2cf767e47e9d05fbfe1328f1485a488ef
Branches:  origin/master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=5cea7a9047ca45c99b107a89d833c2d0dbe96ec8

Log:
fix bug #65391

Unable to send vary header user-agent when
ob_start('ob_gzhandler') is called

Bugs:
https://bugs.php.net/65391

Changed paths:
  A  ext/zlib/tests/bug65391.phpt
  M  ext/zlib/zlib.c


Diff:
diff --git a/ext/zlib/tests/bug65391.phpt b/ext/zlib/tests/bug65391.phpt
new file mode 100644
index 0000000..439473f
--- /dev/null
+++ b/ext/zlib/tests/bug65391.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Bug #65391 (Unable to send vary header user-agent when 
ob_start('ob_gzhandler') is called)
+--SKIPIF--
+<?php
+extension_loaded("zlib") or die("skip need zlib");
+?>
+--GET--
+dummy=1
+--FILE--
+<?php
+header("Vary: Cookie");
+ob_start("ob_gzhandler");
+
+// run-tests cannot test for a multiple Vary header
+ob_flush();
+print_r(headers_list());
+
+?>
+Done
+--EXPECTF--
+Array
+(
+    [0] => X-Powered-By: PHP/%s
+    [1] => Vary: Cookie
+    [2] => Vary: Accept-Encoding
+)
+Done
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index 1a202e3..1114bc8 100644
--- a/ext/zlib/zlib.c
+++ b/ext/zlib/zlib.c
@@ -190,7 +190,7 @@ static int php_zlib_output_handler(void **handler_context, 
php_output_context *o
                if ((output_context->op & PHP_OUTPUT_HANDLER_START)
                &&      (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;
        }
@@ -220,7 +220,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);
                        }
                }
@@ -478,7 +478,7 @@ static PHP_FUNCTION(ob_gzhandler)
                                sapi_add_header_ex(ZEND_STRL("Content-Encoding: 
deflate"), 1, 1 TSRMLS_CC);
                                break;
                }
-               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);
        }
 
        if (!ZLIBG(ob_gzhandler)) {


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

Reply via email to