X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_response.c;h=20a31eb90fea41b0ad73aa22c9e8011867dc1c95;hp=be7effa3eaf1b4859d447fbc9821171180a09e15;hb=256a3e275575fe336810530e4e5fe869b00540ee;hpb=c3a7a5b7bde5c6490940791c37b40fa39fe055fe diff --git a/php_http_env_response.c b/php_http_env_response.c index be7effa..20a31eb 100644 --- a/php_http_env_response.c +++ b/php_http_env_response.c @@ -228,8 +228,8 @@ php_http_cache_status_t php_http_env_is_response_cached_by_last_modified(zval *o static zend_bool php_http_env_response_is_cacheable(php_http_env_response_t *r, php_http_message_t *request) { - TSRMLS_FETCH_FROM_CTX(r->ts); long status = r->ops->get_status(r); + TSRMLS_FETCH_FROM_CTX(r->ts); if (status && status / 100 != 2) { return 0; @@ -1213,9 +1213,14 @@ static PHP_METHOD(HttpEnvResponse, __invoke) PHP_HTTP_ENV_RESPONSE_OBJECT_INIT(obj); - php_http_message_object_init_body_object(obj); + if (!obj->body) { + php_http_message_object_init_body_object(obj); + } php_http_message_body_append(obj->message->body, ob_str, ob_len); #if PHP_VERSION_ID >= 50400 + if (ob_flags & PHP_OUTPUT_HANDLER_CLEAN) { + php_stream_truncate_set_size(php_http_message_body_stream(obj->message->body), 0); + } RETURN_TRUE; #else RETURN_EMPTY_STRING();