- fix HttpResponse::capture() failure if buffered output exceeds 40k
[m6w6/ext-http] / http_response_object.c
index 6f6cf4dab10bb503bf4074a5bcc670948af68cbb..fc4bf22536ffd4383d3efaa5d8272ce65741f3b4 100644 (file)
@@ -1094,7 +1094,11 @@ PHP_METHOD(HttpResponse, send)
                cctl = convert_to_type_ex(IS_STRING, GET_STATIC_PROP(cacheControl), &cctl_p);
                
                if (Z_LVAL_P(lmod) || Z_STRLEN_P(etag)) {
-                       http_send_cache_control(Z_STRVAL_P(cctl), Z_STRLEN_P(cctl));
+                       if (Z_STRLEN_P(cctl)) {
+                               http_send_cache_control(Z_STRVAL_P(cctl), Z_STRLEN_P(cctl));
+                       } else {
+                               http_send_cache_control(HTTP_DEFAULT_CACHECONTROL, lenof(HTTP_DEFAULT_CACHECONTROL));
+                       }
                        if (Z_STRLEN_P(etag)) {
                                http_send_etag(Z_STRVAL_P(etag), Z_STRLEN_P(etag));
                        }
@@ -1209,7 +1213,7 @@ PHP_METHOD(HttpResponse, capture)
        UPD_STATIC_PROP(long, catch, 1);
 
        php_end_ob_buffers(0 TSRMLS_CC);
-       php_start_ob_buffer(NULL, 40960, 0 TSRMLS_CC);
+       php_start_ob_buffer(NULL, 0, 0 TSRMLS_CC);
 
        /* register shutdown function */
        {