From 371a7daee8ef02195769ebf846e0f5ca93093672 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Mon, 11 Aug 2014 17:13:05 +0200 Subject: [PATCH] fix PHP-5.3 compatibility --- php_http_env_response.c | 4 ++++ php_http_message.c | 13 +++++++++++++ tests/params015.phpt | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/php_http_env_response.c b/php_http_env_response.c index 4d6ef03..c155dde 100644 --- a/php_http_env_response.c +++ b/php_http_env_response.c @@ -1096,7 +1096,11 @@ static PHP_METHOD(HttpEnvResponse, __invoke) 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 RETURN_TRUE; +#else + RETURN_EMPTY_STRING(); +#endif } } diff --git a/php_http_message.c b/php_http_message.c index cc04edc..88def26 100644 --- a/php_http_message.c +++ b/php_http_message.c @@ -98,6 +98,19 @@ php_http_message_t *php_http_message_init_env(php_http_message_t *message, php_h zval_dtor(&tval); } } +#else + if (OG(ob_nesting_level)) { + if (php_get_output_start_filename(TSRMLS_C)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not fetch response body, output has already been sent at %s:%d", php_get_output_start_filename(TSRMLS_C), php_get_output_start_lineno(TSRMLS_C)); + goto error; + } else if (SUCCESS != php_ob_get_buffer(&tval TSRMLS_CC)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not fetch response body"); + goto error; + } else { + php_http_message_body_append(message->body, Z_STRVAL(tval), Z_STRLEN(tval)); + zval_dtor(&tval); + } + } #endif break; diff --git a/tests/params015.phpt b/tests/params015.phpt index ad3948c..7501167 100644 --- a/tests/params015.phpt +++ b/tests/params015.phpt @@ -7,7 +7,7 @@ include "skipif.inc"; --FILE-- ["filename"=>"foo.bar"]]); +$p = new http\Params(array("attachment"=>array("filename"=>"foo.bar"))); var_dump($p->params); var_dump((string)$p); ?> -- 2.30.2