projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
prepare 2.5.1
[m6w6/ext-http]
/
php_http_env_response.c
diff --git
a/php_http_env_response.c
b/php_http_env_response.c
index 67a6d5830e4bf4d07b63b7db7b5b1df4b108050c..20a31eb90fea41b0ad73aa22c9e8011867dc1c95 100644
(file)
--- a/
php_http_env_response.c
+++ b/
php_http_env_response.c
@@
-228,9
+228,10
@@
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)
{
static zend_bool php_http_env_response_is_cacheable(php_http_env_response_t *r, php_http_message_t *request)
{
+ long status = r->ops->get_status(r);
TSRMLS_FETCH_FROM_CTX(r->ts);
TSRMLS_FETCH_FROM_CTX(r->ts);
- if (
r->ops->get_status(r) >= 400
) {
+ if (
status && status / 100 != 2
) {
return 0;
}
return 0;
}
@@
-1212,9
+1213,14
@@
static PHP_METHOD(HttpEnvResponse, __invoke)
PHP_HTTP_ENV_RESPONSE_OBJECT_INIT(obj);
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
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();
RETURN_TRUE;
#else
RETURN_EMPTY_STRING();