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);
- if (r->ops->get_status(r) >= 400) {
+ if (status && status / 100 != 2) {
return 0;
}
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();