X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_response.c;h=557bb1088b07849d6ac56855d62fb1db77dc05ed;hp=5b4682084278d460c6672caafa745177fd289c9a;hb=468e8d748d365811af4ce890fd8fc4c1f88cc08a;hpb=af63b51f8172e530c3fd9d780ceff76918f0ebd3 diff --git a/php_http_env_response.c b/php_http_env_response.c index 5b46820..557bb10 100644 --- a/php_http_env_response.c +++ b/php_http_env_response.c @@ -207,7 +207,9 @@ 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) { - if (r->ops->get_status(r) >= 400) { + long status = r->ops->get_status(r); + + if (status && status / 100 != 2) { return 0; } @@ -1157,7 +1159,12 @@ static PHP_METHOD(HttpEnvResponse, __invoke) PHP_HTTP_ENV_RESPONSE_OBJECT_INIT(obj); php_http_message_object_init_body_object(obj); - php_http_message_body_append(obj->message->body, ob_str, ob_len); + + if (ob_flags & PHP_OUTPUT_HANDLER_CLEAN) { + php_stream_truncate_set_size(php_http_message_body_stream(obj->message->body), 0); + } else { + php_http_message_body_append(obj->message->body, ob_str, ob_len); + } RETURN_TRUE; } }