]> granicus.if.org Git - php/commitdiff
RFC:continue_ob accepted
authorMichael Wallner <mike@php.net>
Wed, 25 Mar 2015 14:22:37 +0000 (15:22 +0100)
committerMichael Wallner <mike@php.net>
Wed, 25 Mar 2015 14:22:49 +0000 (15:22 +0100)
NEWS
UPGRADING
main/output.c

diff --git a/NEWS b/NEWS
index 31ed52641ee3752bd3792b1827d0e0627e59f9d2..09e88523f87776fa4986c6dfe2a927ee7128111c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -58,6 +58,7 @@
     (Anatol)
   . Implemented the RFC `Scalar Type Decalarations v0.5`. (Anthony)
   . Implemented the RFC `Group Use Declarations`. (Marcio)
+  . Implemented the RFC `Continue Output Buffering`. (Mike)
 
 - Curl:
   . Fixed bug #68937 (Segfault in curl_multi_exec). (Laruence)
index 6ebc4218dfda601e73fe2c683023b34db5749272..7f45aeccf4babd1922061dec0cdfd030d8627893 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -564,4 +564,7 @@ For more details see https://wiki.php.net/rfc/removal_of_dead_sapis_and_exts
     always be zero when casted to integer.
   . Calling a method on a non-object no longer raises a fatal error; see
     also: https://wiki.php.net/rfc/catchable-call-to-member-of-non-object.
-  . Error messages for zend_parse_parameters, type hints and conversions now always say "integer" and "float" instead of "long" and "double".
+  . Error messages for zend_parse_parameters, type hints and conversions now
+    always say "integer" and "float" instead of "long" and "double".
+  . Output buffering now continues to work for an aborted connection if
+    ignore_user_abort is set to true.
index 22ac26a7c58b33bd5ad20d3028bac7c17deac580..a0a300b376215115ecbbb3e5b6a26592bb04f343 100644 (file)
@@ -242,9 +242,6 @@ PHPAPI int php_output_get_status(void)
  * Unbuffered write */
 PHPAPI size_t php_output_write_unbuffered(const char *str, size_t len)
 {
-       if (OG(flags) & PHP_OUTPUT_DISABLED) {
-               return 0;
-       }
        if (OG(flags) & PHP_OUTPUT_ACTIVATED) {
                return sapi_module.ub_write(str, len);
        }
@@ -256,13 +253,13 @@ PHPAPI size_t php_output_write_unbuffered(const char *str, size_t len)
  * Buffered write */
 PHPAPI size_t php_output_write(const char *str, size_t len)
 {
-       if (OG(flags) & PHP_OUTPUT_DISABLED) {
-               return 0;
-       }
        if (OG(flags) & PHP_OUTPUT_ACTIVATED) {
                php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len);
                return len;
        }
+       if (OG(flags) & PHP_OUTPUT_DISABLED) {
+               return 0;
+       }
        return php_output_direct(str, len);
 }
 /* }}} */