diff options
-rw-r--r-- | PHPINFO | 2 | ||||
-rw-r--r-- | REFLECTION | 171 | ||||
-rw-r--r-- | pecl_http-php81.patch | 846 | ||||
-rw-r--r-- | php-pecl-http.spec | 17 |
4 files changed, 157 insertions, 879 deletions
@@ -2,7 +2,7 @@ http HTTP Support => enabled -Extension Version => 4.1.0 +Extension Version => 4.2.0 Used Library => Compiled => Linked libz => 1.2.11 => 1.2.11 @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #82 http version 4.1.0 ] { +Extension [ <persistent> extension #84 http version 4.2.0 ] { - Dependencies { Dependency [ raphf (Required) ] @@ -36,12 +36,12 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Constant [ int http\Client\Curl\Features\BROTLI ] { 8388608 } Constant [ int http\Client\Curl\Features\ALTSVC ] { 16777216 } Constant [ int http\Client\Curl\Features\HTTP3 ] { 33554432 } - Constant [ string http\Client\Curl\VERSIONS ] { libcurl/7.71.1 OpenSSL/1.1.1k-fips zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.9.5/openssl/zlib nghttp2/1.43.0 } + Constant [ string http\Client\Curl\VERSIONS ] { libcurl/7.71.1 OpenSSL/1.1.1k-fips zlib/1.2.11 brotli/1.0.9 libidn2/2.3.2 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.9.5/openssl/zlib nghttp2/1.43.0 } Constant [ string http\Client\Curl\Versions\CURL ] { 7.71.1 } Constant [ string http\Client\Curl\Versions\SSL ] { OpenSSL/1.1.1k-fips } Constant [ string http\Client\Curl\Versions\LIBZ ] { 1.2.11 } Constant [ null http\Client\Curl\Versions\ARES ] { } - Constant [ string http\Client\Curl\Versions\IDN ] { 2.3.0 } + Constant [ string http\Client\Curl\Versions\IDN ] { 2.3.2 } Constant [ null http\Client\Curl\Versions\ICONV ] { } Constant [ string http\Client\Curl\Versions\BROTLI ] { 1.0.9 } Constant [ string http\Client\Curl\Versions\NGHTTP2 ] { 1.43.0 } @@ -1526,7 +1526,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ public $value = NULL ] } - - Methods [8] { + - Methods [10] { Method [ <internal:http, ctor> public method __construct ] { - Parameters [2] { @@ -1535,28 +1535,43 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } - Method [ <internal:http, prototype Serializable> public method serialize ] { + Method [ <internal:http> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + + Method [ <internal:http> public method __serialize ] { - Parameters [0] { } + - Return [ array ] } - Method [ <internal:http> public method __toString ] { + Method [ <internal:http, prototype Serializable> public method unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> $serialized ] + } + } + + Method [ <internal:http, prototype Serializable> public method serialize ] { - Parameters [0] { } } - Method [ <internal:http> public method toString ] { + Method [ <internal:http> public method __toString ] { - Parameters [0] { } } - Method [ <internal:http, prototype Serializable> public method unserialize ] { + Method [ <internal:http> public method toString ] { - - Parameters [1] { - Parameter #0 [ <required> $serialized ] + - Parameters [0] { } } @@ -1663,7 +1678,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ protected $parentMessage = NULL ] } - - Methods [42] { + - Methods [44] { Method [ <internal:http, ctor> public method __construct ] { - Parameters [2] { @@ -1875,6 +1890,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, prototype Iterator> public method rewind ] { - Parameters [0] { @@ -2016,7 +2046,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { - Properties [0] { } - - Methods [14] { + - Methods [16] { Method [ <internal:http, ctor> public method __construct ] { - Parameters [1] { @@ -2049,6 +2079,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http> public method toStream ] { - Parameters [3] { @@ -2143,7 +2188,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ private $queryArray = NULL ] } - - Methods [20] { + - Methods [22] { Method [ <internal:http, ctor> final public method __construct ] { - Parameters [1] { @@ -2251,6 +2296,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { - Parameters [0] { } + - Return [ Traversable ] } Method [ <internal:http, prototype Serializable> public method serialize ] { @@ -2266,17 +2312,32 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, prototype ArrayAccess> public method offsetGet ] { - Parameters [1] { - Parameter #0 [ <required> $offset ] + Parameter #0 [ <required> $name ] } } Method [ <internal:http, prototype ArrayAccess> public method offsetSet ] { - Parameters [2] { - Parameter #0 [ <required> $offset ] + Parameter #0 [ <required> $name ] Parameter #1 [ <required> $value ] } } @@ -2284,14 +2345,14 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Method [ <internal:http, prototype ArrayAccess> public method offsetExists ] { - Parameters [1] { - Parameter #0 [ <required> $offset ] + Parameter #0 [ <required> $name ] } } Method [ <internal:http, prototype ArrayAccess> public method offsetUnset ] { - Parameters [1] { - Parameter #0 [ <required> $offset ] + Parameter #0 [ <required> $name ] } } } @@ -2566,7 +2627,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ protected $options = NULL ] } - - Methods [52] { + - Methods [54] { Method [ <internal:http, overwrites http\Message, ctor> public method __construct ] { - Parameters [4] { @@ -2846,6 +2907,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http, inherits http\Message> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http, inherits http\Message> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, inherits http\Message, prototype Iterator> public method rewind ] { - Parameters [0] { @@ -2944,7 +3020,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ protected $transferInfo = NULL ] } - - Methods [44] { + - Methods [46] { Method [ <internal:http> public method getCookies ] { - Parameters [2] { @@ -3171,6 +3247,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http, inherits http\Message> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http, inherits http\Message> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, inherits http\Message, prototype Iterator> public method rewind ] { - Parameters [0] { @@ -3477,7 +3568,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { - Static properties [0] { } - - Static methods [13] { + - Static methods [14] { Method [ <internal:http> static public method getRequestHeader ] { - Parameters [1] { @@ -3576,6 +3667,12 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Parameter #3 [ <optional> &$result_array = <default> ] } } + + Method [ <internal:http> static public method reset ] { + + - Parameters [0] { + } + } } - Properties [0] { @@ -3615,7 +3712,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ protected $files = NULL ] } - - Methods [46] { + - Methods [48] { Method [ <internal:http, overwrites http\Message, ctor> public method __construct ] { - Parameters [0] { @@ -3861,6 +3958,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http, inherits http\Message> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http, inherits http\Message> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, inherits http\Message, prototype Iterator> public method rewind ] { - Parameters [0] { @@ -3973,7 +4085,7 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { Property [ protected $throttleChunk = NULL ] } - - Methods [55] { + - Methods [57] { Method [ <internal:http, overwrites http\Message, ctor> public method __construct ] { - Parameters [0] { @@ -4276,6 +4388,21 @@ Extension [ <persistent> extension #82 http version 4.1.0 ] { } } + Method [ <internal:http, inherits http\Message> public method __serialize ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:http, inherits http\Message> public method __unserialize ] { + + - Parameters [1] { + Parameter #0 [ <required> array $data ] + } + - Return [ void ] + } + Method [ <internal:http, inherits http\Message, prototype Iterator> public method rewind ] { - Parameters [0] { diff --git a/pecl_http-php81.patch b/pecl_http-php81.patch deleted file mode 100644 index a651733..0000000 --- a/pecl_http-php81.patch +++ /dev/null @@ -1,846 +0,0 @@ -From a4f66fb42bb5203e9d1897a6cf554aa702ce0380 Mon Sep 17 00:00:00 2001 -From: Thomas Deutschmann <whissi@gentoo.org> -Date: Tue, 18 May 2021 19:55:47 +0200 -Subject: [PATCH 01/11] tests: use getenv() to access environment variable - -Fixes - - Warning: Undefined array key "PATH" in pecl-http-4.1.0/work/php8.0/tests/skipif.inc on line 56 ---- - tests/skipif.inc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/skipif.inc b/tests/skipif.inc -index 51272fb..76c3bd7 100644 ---- a/tests/skipif.inc -+++ b/tests/skipif.inc -@@ -53,7 +53,7 @@ function skip_http2_test($message = "skip need http2 support") { - if (!(http\Client\Curl\FEATURES & http\Client\Curl\Features\HTTP2)) { - die("$message (FEATURES & HTTP2)\n"); - } -- foreach (explode(":", $_ENV["PATH"]) as $path) { -+ foreach (explode(":", getenv("PATH")) as $path) { - if (is_executable($path . "/nghttpd")) { - return; - } --- -2.31.1 - -From b63ba83de3d26c61062b72a8d5675225297302db Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:15:09 +0200 -Subject: [PATCH 02/11] PHP-8.1 compat - ---- - src/php_http_client.c | 2 +- - src/php_http_header.c | 39 ++++++++++++++++- - src/php_http_message.c | 85 ++++++++++++++++++++++++++++++------- - src/php_http_message_body.c | 46 ++++++++++++++++++++ - src/php_http_params.c | 8 ++-- - src/php_http_querystring.c | 43 +++++++++++++++---- - 6 files changed, 193 insertions(+), 30 deletions(-) - -diff --git a/src/php_http_client.c b/src/php_http_client.c -index 4e1ed37..f1ef55d 100644 ---- a/src/php_http_client.c -+++ b/src/php_http_client.c -@@ -804,7 +804,7 @@ static PHP_METHOD(HttpClient, requeue) - RETVAL_ZVAL(getThis(), 1, 0); - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_count, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpClient_count, 0, 0, IS_LONG, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpClient, count) - { -diff --git a/src/php_http_header.c b/src/php_http_header.c -index 76b2f68..c9b1e0d 100644 ---- a/src/php_http_header.c -+++ b/src/php_http_header.c -@@ -191,6 +191,41 @@ PHP_METHOD(HttpHeader, __construct) - } - } - -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpHeader___serialize, 0, 0, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpHeader, __serialize) -+{ -+ zval name, value, *ptr; -+ -+ zend_parse_parameters_none(); -+ -+ array_init(return_value); -+ ptr = zend_read_property(php_http_header_class_entry, Z_OBJ_P(ZEND_THIS), ZEND_STRL("name"), 0, &name); -+ Z_TRY_ADDREF_P(ptr); -+ add_next_index_zval(return_value, ptr); -+ ptr = zend_read_property(php_http_header_class_entry, Z_OBJ_P(ZEND_THIS), ZEND_STRL("value"), 0, &value); -+ Z_TRY_ADDREF_P(ptr); -+ add_next_index_zval(return_value, ptr); -+} -+ -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpHeader___unserialize, 0, 1, IS_VOID, 0) -+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpHeader, __unserialize) -+{ -+ HashTable *ha; -+ zval *name, *value; -+ -+ php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "h", &ha), invalid_arg, return); -+ name = zend_hash_index_find(ha, 0); -+ value = zend_hash_index_find(ha, 1); -+ -+ if (name && value) { -+ zend_update_property(php_http_header_class_entry, Z_OBJ_P(ZEND_THIS), ZEND_STRL("name"), name); -+ zend_update_property(php_http_header_class_entry, Z_OBJ_P(ZEND_THIS), ZEND_STRL("value"), value); -+ } -+} -+ - ZEND_BEGIN_ARG_INFO_EX(ai_HttpHeader_serialize, 0, 0, 0) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpHeader, serialize) -@@ -399,10 +434,12 @@ PHP_METHOD(HttpHeader, parse) - - static zend_function_entry php_http_header_methods[] = { - PHP_ME(HttpHeader, __construct, ai_HttpHeader___construct, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpHeader, __unserialize, ai_HttpHeader___unserialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpHeader, __serialize, ai_HttpHeader___serialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpHeader, unserialize, ai_HttpHeader_unserialize, ZEND_ACC_PUBLIC) - PHP_ME(HttpHeader, serialize, ai_HttpHeader_serialize, ZEND_ACC_PUBLIC) - ZEND_MALIAS(HttpHeader, __toString, serialize, ai_HttpHeader_serialize, ZEND_ACC_PUBLIC) - ZEND_MALIAS(HttpHeader, toString, serialize, ai_HttpHeader_serialize, ZEND_ACC_PUBLIC) -- PHP_ME(HttpHeader, unserialize, ai_HttpHeader_unserialize, ZEND_ACC_PUBLIC) - PHP_ME(HttpHeader, match, ai_HttpHeader_match, ZEND_ACC_PUBLIC) - PHP_ME(HttpHeader, negotiate, ai_HttpHeader_negotiate, ZEND_ACC_PUBLIC) - PHP_ME(HttpHeader, getParams, ai_HttpHeader_getParams, ZEND_ACC_PUBLIC) -diff --git a/src/php_http_message.c b/src/php_http_message.c -index 1b8ecd2..d09b0b4 100644 ---- a/src/php_http_message.c -+++ b/src/php_http_message.c -@@ -647,15 +647,15 @@ static void php_http_message_object_prophandler_set_headers(php_http_message_obj - } - } - static void php_http_message_object_prophandler_get_body(php_http_message_object_t *obj, zval *return_value) { -- if (obj->body) { -- zval tmp; -+ zval tmp; - -- ZVAL_COPY_VALUE(&tmp, return_value); -- RETVAL_OBJECT(&obj->body->zo, 1); -- zval_ptr_dtor(&tmp); -- } else { -- RETVAL_NULL(); -+ if (!obj->body) { -+ RETURN_NULL(); - } -+ -+ ZVAL_COPY_VALUE(&tmp, return_value); -+ RETVAL_OBJECT(&obj->body->zo, 1); -+ zval_ptr_dtor(&tmp); - } - static void php_http_message_object_prophandler_set_body(php_http_message_object_t *obj, zval *value) { - php_http_message_object_set_body(obj, value); -@@ -931,14 +931,16 @@ static zval *php_http_message_object_write_prop(zend_object *object, zend_string - - static HashTable *php_http_message_object_get_debug_info(zend_object *object, int *is_temp) - { -- zval tmp; - php_http_message_object_t *obj = PHP_HTTP_OBJ(object, NULL); - HashTable *props = zend_get_std_object_handlers()->get_properties(object); - char *ver_str, *url_str = NULL; - size_t ver_len, url_len = 0; -+ zval tmp; - - PHP_HTTP_MESSAGE_OBJECT_INIT(obj); -- *is_temp = 0; -+ if (is_temp) { -+ *is_temp = 0; -+ } - - #define UPDATE_PROP(name_str, action_with_tmp) \ - do { \ -@@ -1762,6 +1764,57 @@ static PHP_METHOD(HttpMessage, toCallback) - } - } - -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage___serialize, 0, 0, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+static PHP_METHOD(HttpMessage, __serialize) -+{ -+ zend_ulong num_index; -+ zend_string *str_index; -+ zend_property_info *pi; -+ php_http_message_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); -+ HashTable *props = php_http_message_object_get_debug_info(&obj->zo, NULL); -+ -+ zend_parse_parameters_none(); -+ -+ array_init(return_value); -+ -+ ZEND_HASH_FOREACH_KEY_PTR(&obj->zo.ce->properties_info, num_index, str_index, pi) -+ { -+ zval *val; -+ if (str_index && (val = zend_hash_find_ind(props, pi->name))) { -+ Z_TRY_ADDREF_P(val); -+ zend_hash_update(Z_ARRVAL_P(return_value), str_index, val); -+ } -+ } -+ ZEND_HASH_FOREACH_END(); -+} -+ -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage___unserialize, 0, 1, IS_VOID, 0) -+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+static PHP_METHOD(HttpMessage, __unserialize) -+{ -+ HashTable *arr; -+ zend_string *key; -+ zval *val; -+ php_http_message_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); -+ -+ php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "h", &arr), invalid_arg, return); -+ -+ PHP_HTTP_MESSAGE_OBJECT_INIT(obj); -+ -+ ZEND_HASH_FOREACH_STR_KEY_VAL(arr, key, val) -+ { -+ php_http_message_object_prophandler_t *ph = php_http_message_object_get_prophandler(key); -+ if (ph) { -+ ph->write(obj, val); -+ } else { -+ zend_update_property_ex(php_http_message_class_entry, &obj->zo, key, val); -+ } -+ } -+ ZEND_HASH_FOREACH_END(); -+} -+ - ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_serialize, 0, 0, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, serialize) -@@ -1916,7 +1969,7 @@ static PHP_METHOD(HttpMessage, splitMultipartBody) - RETURN_OBJ(&php_http_message_object_new_ex(obj->zo.ce, msg)->zo); - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_count, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage_count, 0, 0, IS_LONG, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, count) - { -@@ -1931,7 +1984,7 @@ static PHP_METHOD(HttpMessage, count) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_rewind, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage_rewind, 0, 0, IS_VOID, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, rewind) - { -@@ -1946,7 +1999,7 @@ static PHP_METHOD(HttpMessage, rewind) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_valid, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage_valid, 0, 0, _IS_BOOL, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, valid) - { -@@ -1957,7 +2010,7 @@ static PHP_METHOD(HttpMessage, valid) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_next, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage_next, 0, 0, IS_VOID, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, next) - { -@@ -1981,7 +2034,7 @@ static PHP_METHOD(HttpMessage, next) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_key, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessage_key, 0, 0, IS_LONG, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, key) - { -@@ -1992,7 +2045,7 @@ static PHP_METHOD(HttpMessage, key) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessage_current, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(ai_HttpMessage_current, 0, 0, http\\Message, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpMessage, current) - { -@@ -2041,6 +2094,8 @@ static zend_function_entry php_http_message_methods[] = { - /* implements Serializable */ - PHP_ME(HttpMessage, serialize, ai_HttpMessage_serialize, ZEND_ACC_PUBLIC) - PHP_ME(HttpMessage, unserialize, ai_HttpMessage_unserialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpMessage, __serialize, ai_HttpMessage___serialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpMessage, __unserialize, ai_HttpMessage___unserialize, ZEND_ACC_PUBLIC) - - /* implements Iterator */ - PHP_ME(HttpMessage, rewind, ai_HttpMessage_rewind, ZEND_ACC_PUBLIC) -diff --git a/src/php_http_message_body.c b/src/php_http_message_body.c -index 70fd587..72cfa4a 100644 ---- a/src/php_http_message_body.c -+++ b/src/php_http_message_body.c -@@ -704,6 +704,50 @@ PHP_METHOD(HttpMessageBody, unserialize) - } - } - -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessageBody___unserialize, 0, 1, IS_VOID, 0) -+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpMessageBody, __unserialize) -+{ -+ HashTable *arr; -+ -+ if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "h", &arr)) { -+ zval *zv = zend_hash_index_find(arr, 0); -+ -+ if (0 && zv) { -+ zend_string *zs = zval_get_string(zv); -+ php_stream *s = php_http_mem_stream_open(0, zs); -+ php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); -+ -+ obj->body = php_http_message_body_init(NULL, s); -+ php_stream_to_zval(s, obj->gc); -+ zend_string_release(zs); -+ } -+ } -+} -+ -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpMessageBody___serialize, 0, 0, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpMessageBody, __serialize) -+{ -+ -+ php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); -+ zend_string *zs; -+ -+ zend_parse_parameters_none(); -+ -+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj); -+ -+ array_init(return_value); -+ zs = php_http_message_body_to_string(obj->body, 0, 0); -+ if (zs) { -+ add_index_str(return_value, 0, zs); -+ zend_string_release(zs); -+ } -+} -+ -+ -+ - ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessageBody_toStream, 0, 0, 1) - ZEND_ARG_INFO(0, stream) - ZEND_ARG_INFO(0, offset) -@@ -914,6 +958,8 @@ static zend_function_entry php_http_message_body_methods[] = { - PHP_MALIAS(HttpMessageBody, toString, __toString, ai_HttpMessageBody___toString, ZEND_ACC_PUBLIC) - PHP_MALIAS(HttpMessageBody, serialize, __toString, ai_HttpMessageBody___toString, ZEND_ACC_PUBLIC) - PHP_ME(HttpMessageBody, unserialize, ai_HttpMessageBody_unserialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpMessageBody, __serialize, ai_HttpMessageBody___serialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpMessageBody, __unserialize,ai_HttpMessageBody___unserialize,ZEND_ACC_PUBLIC) - PHP_ME(HttpMessageBody, toStream, ai_HttpMessageBody_toStream, ZEND_ACC_PUBLIC) - PHP_ME(HttpMessageBody, toCallback, ai_HttpMessageBody_toCallback, ZEND_ACC_PUBLIC) - PHP_ME(HttpMessageBody, getResource, ai_HttpMessageBody_getResource, ZEND_ACC_PUBLIC) -diff --git a/src/php_http_params.c b/src/php_http_params.c -index 8ac4f8f..4a523cc 100644 ---- a/src/php_http_params.c -+++ b/src/php_http_params.c -@@ -1181,7 +1181,7 @@ PHP_METHOD(HttpParams, toString) - RETVAL_STR(php_http_cs2zs(buf.data, buf.used)); - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpParams_offsetExists, 0, 0, 1) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpParams_offsetExists, 0, 1, _IS_BOOL, 0) - ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpParams, offsetExists) -@@ -1202,7 +1202,7 @@ PHP_METHOD(HttpParams, offsetExists) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpParams_offsetGet, 0, 0, 1) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpParams_offsetGet, 0, 1, IS_MIXED, 1) - ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpParams, offsetGet) -@@ -1221,7 +1221,7 @@ PHP_METHOD(HttpParams, offsetGet) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpParams_offsetUnset, 0, 0, 1) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpParams_offsetUnset, 0, 1, IS_VOID, 0) - ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpParams, offsetUnset) -@@ -1240,7 +1240,7 @@ PHP_METHOD(HttpParams, offsetUnset) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpParams_offsetSet, 0, 0, 2) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpParams_offsetSet, 0, 2, IS_VOID, 0) - ZEND_ARG_INFO(0, name) - ZEND_ARG_INFO(0, value) - ZEND_END_ARG_INFO(); -diff --git a/src/php_http_querystring.c b/src/php_http_querystring.c -index f2d73a4..541937e 100644 ---- a/src/php_http_querystring.c -+++ b/src/php_http_querystring.c -@@ -395,7 +395,7 @@ PHP_METHOD(HttpQueryString, getGlobalInstance) - - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_getIterator, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(ai_HttpQueryString_getIterator, 0, 0, Traversable, 0) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, getIterator) - { -@@ -566,6 +566,29 @@ PHP_METHOD(HttpQueryString, xlate) - } - #endif /* HAVE_ICONV */ - -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString___serialize, 0, 0, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpQueryString, __serialize) -+{ -+ zval *zqa, zqa_tmp; -+ -+ zend_parse_parameters_none(); -+ -+ zqa = zend_read_property(php_http_querystring_class_entry, Z_OBJ_P(ZEND_THIS), ZEND_STRL("queryArray"), 0, &zqa_tmp); -+ RETURN_ZVAL(zqa, 1, 0); -+} -+ -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString___unserialize, 0, 1, IS_VOID, 0) -+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0) -+ZEND_END_ARG_INFO(); -+PHP_METHOD(HttpQueryString, __unserialize) -+{ -+ zval *qa; -+ -+ php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "a", &qa), invalid_arg, return); -+ php_http_querystring_set(getThis(), qa, 0); -+} -+ - ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_serialize, 0, 0, 0) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, serialize) -@@ -594,8 +617,8 @@ PHP_METHOD(HttpQueryString, unserialize) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_offsetGet, 0, 0, 1) -- ZEND_ARG_INFO(0, offset) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString_offsetGet, 0, 1, IS_MIXED, 1) -+ ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, offsetGet) - { -@@ -616,8 +639,8 @@ PHP_METHOD(HttpQueryString, offsetGet) - } - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_offsetSet, 0, 0, 2) -- ZEND_ARG_INFO(0, offset) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString_offsetSet, 0, 2, IS_VOID, 0) -+ ZEND_ARG_INFO(0, name) - ZEND_ARG_INFO(0, value) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, offsetSet) -@@ -641,8 +664,8 @@ PHP_METHOD(HttpQueryString, offsetSet) - zval_ptr_dtor(¶m); - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_offsetExists, 0, 0, 1) -- ZEND_ARG_INFO(0, offset) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString_offsetExists, 0, 1, _IS_BOOL, 0) -+ ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, offsetExists) - { -@@ -664,8 +687,8 @@ PHP_METHOD(HttpQueryString, offsetExists) - RETURN_FALSE; - } - --ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_offsetUnset, 0, 0, 1) -- ZEND_ARG_INFO(0, offset) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(ai_HttpQueryString_offsetUnset, 0, 1, IS_VOID, 0) -+ ZEND_ARG_INFO(0, name) - ZEND_END_ARG_INFO(); - PHP_METHOD(HttpQueryString, offsetUnset) - { -@@ -711,6 +734,8 @@ static zend_function_entry php_http_querystring_methods[] = { - /* Implements Serializable */ - PHP_ME(HttpQueryString, serialize, ai_HttpQueryString_serialize, ZEND_ACC_PUBLIC) - PHP_ME(HttpQueryString, unserialize, ai_HttpQueryString_unserialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpQueryString, __serialize, ai_HttpQueryString___serialize, ZEND_ACC_PUBLIC) -+ PHP_ME(HttpQueryString, __unserialize, ai_HttpQueryString___unserialize, ZEND_ACC_PUBLIC) - - /* Implements ArrayAccess */ - PHP_ME(HttpQueryString, offsetGet, ai_HttpQueryString_offsetGet, ZEND_ACC_PUBLIC) --- -2.31.1 - -From 22c2da5a45dfeefc3c32fbb5ff1b1129341a2001 Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:42:23 +0200 -Subject: [PATCH 04/11] curl: ssl/falsestart: ignore rc - ---- - src/php_http_client_curl.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c -index 915b8fc..89ae5e0 100644 ---- a/src/php_http_client_curl.c -+++ b/src/php_http_client_curl.c -@@ -812,6 +812,7 @@ static php_http_options_t php_http_curle_options, php_http_curlm_options; - #define PHP_HTTP_CURLE_OPTION_CHECK_STRLEN 0x0001 - #define PHP_HTTP_CURLE_OPTION_CHECK_BASEDIR 0x0002 - #define PHP_HTTP_CURLE_OPTION_TRANSFORM_MS 0x0004 -+#define PHP_HTTP_CURLE_OPTION_IGNORE_RC 0x0008 - - static ZEND_RESULT_CODE php_http_curle_option_set_ssl_verifyhost(php_http_option_t *opt, zval *val, void *userdata) - { -@@ -1582,7 +1583,9 @@ static void php_http_curle_options_init(php_http_options_t *registry) - } - #endif - #if PHP_HTTP_CURL_VERSION(7,42,0) && (PHP_HTTP_HAVE_LIBCURL_NSS || PHP_HTTP_HAVE_LIBCURL_SECURETRANSPORT) -- php_http_option_register(ssl_registry, ZEND_STRL("falsestart"), CURLOPT_SSL_FALSESTART, _IS_BOOL); -+ if ((opt = php_http_option_register(ssl_registry, ZEND_STRL("falsestart"), CURLOPT_SSL_FALSESTART, _IS_BOOL))) { -+ opt->flags |= PHP_HTTP_CURLE_OPTION_IGNORE_RC; -+ } - #endif - #if PHP_HTTP_CURL_VERSION(7,61,0) - if ((opt = php_http_option_register(ssl_registry, ZEND_STRL("tls13_ciphers"), CURLOPT_TLS13_CIPHERS, IS_STRING))) { -@@ -1805,7 +1808,11 @@ static ZEND_RESULT_CODE php_http_curle_set_option(php_http_option_t *opt, zval * - break; - } - if (rv != SUCCESS) { -- php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_easy_strerror(rc)); -+ if (opt->flags & PHP_HTTP_CURLE_OPTION_IGNORE_RC) { -+ rv = SUCCESS; -+ } else { -+ php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_easy_strerror(rc)); -+ } - } - return rv; - } --- -2.31.1 - -From e49f2f1ff5f4aa5f3a96444e8a677f64a45f0d6f Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:42:58 +0200 -Subject: [PATCH 05/11] tests: skip ~E_DEPRECATED - ---- - tests/client024.phpt | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/client024.phpt b/tests/client024.phpt -index ac29865..4e8fe2f 100644 ---- a/tests/client024.phpt -+++ b/tests/client024.phpt -@@ -4,6 +4,8 @@ client deprecated methods - <?php - include "skipif.inc"; - skip_client_test(); -+if (!(error_reporting() & E_DEPRECATED)) -+ die("skip error_reporting() & ~E_DEPRECATED\n"); - ?> - --FILE-- - <?php --- -2.31.1 - -From 39b377795b0cc7b0add6c6b43b3c8b92eb85767c Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:43:55 +0200 -Subject: [PATCH 06/11] tests: skip SecureTransport - ---- - tests/client012.phpt | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/tests/client012.phpt b/tests/client012.phpt -index bb599db..0e72628 100644 ---- a/tests/client012.phpt -+++ b/tests/client012.phpt -@@ -6,6 +6,8 @@ include "skipif.inc"; - skip_online_test(); - skip_client_test(); - skip_curl_test("7.34.0"); -+if (strpos(http\Client\Curl\Versions\SSL, "SecureTransport") !== false) -+ die("skip SecureTransport\n"); - ?> - --FILE-- - <?php -@@ -43,7 +45,9 @@ switch ($client->getTransferInfo($req)->tls_session["backend"]) { - case "openssl": - case "gnutls": - if (count($observer->data) < 1) { -- die("failed count(ssl.internals) >= 1\n"); -+ printf("%s: failed count(ssl.internals) >= 1\n", $client->getTransferInfo($req)->tls_session["backend"]); -+ var_dump($observer); -+ exit; - } - break; - default: --- -2.31.1 - -From c941e27c8f668f5dc8d7f6a8a5ec3986534d1a29 Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:57:20 +0200 -Subject: [PATCH 07/11] tests: skip Darwin - ---- - tests/urlparser010.phpt | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/urlparser010.phpt b/tests/urlparser010.phpt -index e2e36db..c7f800a 100644 ---- a/tests/urlparser010.phpt -+++ b/tests/urlparser010.phpt -@@ -7,7 +7,9 @@ if (!defined("http\\Url::PARSE_MBLOC") or - !utf8locale()) { - die("skip need http\\Url::PARSE_MBLOC support and LC_CTYPE=*.UTF-8"); - } -- -+if (PHP_OS == "Darwin") { -+ die("skip Darwin\n"); -+} - ?> - --FILE-- - <?php --- -2.31.1 - -From ccd8182038d5a58e6d8f0eb6b3921ebb66baeed0 Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Mon, 2 Aug 2021 16:58:59 +0200 -Subject: [PATCH 08/11] fix #116: cookies fail with libcurl >= 7.77 - ---- - src/php_http_client_curl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c -index 89ae5e0..0e79f19 100644 ---- a/src/php_http_client_curl.c -+++ b/src/php_http_client_curl.c -@@ -856,7 +856,7 @@ static ZEND_RESULT_CODE php_http_curle_option_set_cookiestore(php_http_option_t - } else { - storage->cookiestore = NULL; - } -- if ( CURLE_OK != curl_easy_setopt(ch, CURLOPT_COOKIEFILE, storage->cookiestore) -+ if ( CURLE_OK != curl_easy_setopt(ch, CURLOPT_COOKIEFILE, storage->cookiestore ? storage->cookiestore : "") - || CURLE_OK != curl_easy_setopt(ch, CURLOPT_COOKIEJAR, storage->cookiestore) - ) { - return FAILURE; --- -2.31.1 - -From 114dee054de7fd8b5921b406c5fb69e2cbade9d6 Mon Sep 17 00:00:00 2001 -From: Michael Wallner <mike@php.net> -Date: Wed, 4 Aug 2021 10:02:39 +0200 -Subject: [PATCH 09/11] fixup message/body serialization - ---- - src/php_http_message.c | 2 ++ - src/php_http_message_body.c | 3 +-- - tests/message002.phpt | 3 ++- - 3 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/php_http_message.c b/src/php_http_message.c -index d09b0b4..7287031 100644 ---- a/src/php_http_message.c -+++ b/src/php_http_message.c -@@ -688,6 +688,8 @@ static void php_http_message_object_prophandler_set_parent_message(php_http_mess - do { \ - if (!obj->message) { \ - obj->message = php_http_message_init(NULL, 0, NULL); \ -+ } else if (!obj->body && php_http_message_body_size(obj->message->body)) { \ -+ php_http_message_object_init_body_object(obj); \ - } \ - } while(0) - -diff --git a/src/php_http_message_body.c b/src/php_http_message_body.c -index 72cfa4a..90714d9 100644 ---- a/src/php_http_message_body.c -+++ b/src/php_http_message_body.c -@@ -714,7 +714,7 @@ PHP_METHOD(HttpMessageBody, __unserialize) - if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "h", &arr)) { - zval *zv = zend_hash_index_find(arr, 0); - -- if (0 && zv) { -+ if (zv) { - zend_string *zs = zval_get_string(zv); - php_stream *s = php_http_mem_stream_open(0, zs); - php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); -@@ -742,7 +742,6 @@ PHP_METHOD(HttpMessageBody, __serialize) - zs = php_http_message_body_to_string(obj->body, 0, 0); - if (zs) { - add_index_str(return_value, 0, zs); -- zend_string_release(zs); - } - } - -diff --git a/tests/message002.phpt b/tests/message002.phpt -index 573fdbd..da0b799 100644 ---- a/tests/message002.phpt -+++ b/tests/message002.phpt -@@ -42,7 +42,8 @@ object(%s)#%d (13) { - ["type":protected]=> - int(1) - ["body":protected]=> -- NULL -+ object(http\Message\Body)#3 (0) { -+ } - ["requestMethod":protected]=> - string(4) "POST" - ["requestUrl":protected]=> --- -2.31.1 - -From 4b0b09b0dae0c24296d4e51ea31863f228657f84 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Wed, 4 Aug 2021 15:27:53 +0200 -Subject: [PATCH 10/11] fix proto for 8.1.0beta2 - ---- - src/php_http_client.c | 12 ++++++++++++ - tests/client002.phpt | 1 + - tests/client012.phpt | 1 + - tests/client013.phpt | 3 +++ - tests/client030.phpt | 3 ++- - tests/envresponse016.phpt | 1 + - 6 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/src/php_http_client.c b/src/php_http_client.c -index f1ef55d..0c06cd2 100644 ---- a/src/php_http_client.c -+++ b/src/php_http_client.c -@@ -984,7 +984,11 @@ static int notify(zend_object_iterator *iter, void *puser) - return ZEND_HASH_APPLY_STOP; - } - -+#if PHP_VERSION_ID < 80100 - ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_notify, 0, 0, 0) -+#else -+ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(ai_HttpClient_notify, 0, 0, IS_VOID, 0) -+#endif - ZEND_ARG_OBJ_INFO(0, request, http\\Client\\Request, 1) - ZEND_ARG_INFO(0, progress) - ZEND_END_ARG_INFO(); -@@ -1032,7 +1036,11 @@ static PHP_METHOD(HttpClient, notify) - RETVAL_ZVAL(getThis(), 1, 0); - } - -+#if PHP_VERSION_ID < 80100 - ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_attach, 0, 0, 1) -+#else -+ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(ai_HttpClient_attach, 0, 1, IS_VOID, 0) -+#endif - ZEND_ARG_OBJ_INFO(0, observer, SplObserver, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpClient, attach) -@@ -1061,7 +1069,11 @@ static PHP_METHOD(HttpClient, attach) - RETVAL_ZVAL(getThis(), 1, 0); - } - -+#if PHP_VERSION_ID < 80100 - ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_detach, 0, 0, 1) -+#else -+ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(ai_HttpClient_detach, 0, 1, IS_VOID, 0) -+#endif - ZEND_ARG_OBJ_INFO(0, observer, SplObserver, 0) - ZEND_END_ARG_INFO(); - static PHP_METHOD(HttpClient, detach) -diff --git a/tests/client002.phpt b/tests/client002.phpt -index 6f01a44..0da72d0 100644 ---- a/tests/client002.phpt -+++ b/tests/client002.phpt -@@ -14,6 +14,7 @@ echo "Test\n"; - - class Observer implements SplObserver - { -+ #[ReturnTypeWillChange] - function update(SplSubject $client, http\Client\Request $request = null, StdClass $progress = null) { - echo "P"; - if ($progress->info !== "prepare" && $client->getProgressInfo($request) != $progress) { -diff --git a/tests/client012.phpt b/tests/client012.phpt -index 0e72628..9b4dde7 100644 ---- a/tests/client012.phpt -+++ b/tests/client012.phpt -@@ -26,6 +26,7 @@ var_dump( - - $client->attach($observer = new class implements SplObserver { - public $data = []; -+ #[ReturnTypeWillChange] - function update(SplSubject $client, $req = null, $progress = null) { - $ti = $client->getTransferInfo($req); - if (isset($ti->tls_session["internals"])) { -diff --git a/tests/client013.phpt b/tests/client013.phpt -index 477edf7..962d448 100644 ---- a/tests/client013.phpt -+++ b/tests/client013.phpt -@@ -16,11 +16,13 @@ class Client extends http\Client { - public $pi; - } - class ProgressObserver1 implements SplObserver { -+ #[ReturnTypeWillChange] - function update(SplSubject $c, $r = null) { - if ($c->getProgressInfo($r)) $c->pi .= "-"; - } - } - class ProgressObserver2 implements SplObserver { -+ #[ReturnTypeWillChange] - function update(SplSubject $c, $r = null) { - if ($c->getProgressInfo($r)) $c->pi .= "."; - } -@@ -30,6 +32,7 @@ class CallbackObserver implements SplObserver { - function __construct($callback) { - $this->callback = $callback; - } -+ #[ReturnTypeWillChange] - function update(SplSubject $c, $r = null) { - call_user_func($this->callback, $c, $r); - } -diff --git a/tests/client030.phpt b/tests/client030.phpt -index 8514b4e..156469f 100644 ---- a/tests/client030.phpt -+++ b/tests/client030.phpt -@@ -12,6 +12,7 @@ echo "Test\n"; - include "helper/server.inc"; - - class test implements SplObserver { -+ #[ReturnTypeWillChange] - function update(SplSubject $client) { - $client->once(); - } -@@ -33,4 +34,4 @@ server("proxy.inc", function($port) { - --EXPECTF-- - Test - int(200) --===DONE=== -\ No newline at end of file -+===DONE=== -diff --git a/tests/envresponse016.phpt b/tests/envresponse016.phpt -index 8d48c93..e8b7a61 100644 ---- a/tests/envresponse016.phpt -+++ b/tests/envresponse016.phpt -@@ -10,6 +10,7 @@ include "skipif.inc"; - echo "Test\n"; - - class closer extends php_user_filter { -+ #[ReturnTypeWillChange] - function filter ($in, $out, &$consumed, $closing) { - while ($bucket = stream_bucket_make_writeable($in)) { - stream_bucket_append($out, $bucket); --- -2.31.1 - diff --git a/php-pecl-http.spec b/php-pecl-http.spec index 7ecf562..3f7f022 100644 --- a/php-pecl-http.spec +++ b/php-pecl-http.spec @@ -36,7 +36,7 @@ %bcond_without tests %endif -%global upstream_version 4.1.0 +%global upstream_version 4.2.0 #global upstream_prever beta1 #global upstream_lower beta1 @@ -57,8 +57,6 @@ URL: https://pecl.php.net/package/pecl_http # From http://www.php.net/manual/en/http.configuration.php Source1: %{proj_name}.ini -Patch0: %{proj_name}-php81.patch - BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 8 @@ -148,9 +146,6 @@ mv %{proj_name}-%{upstream_version}%{?upstream_prever} NTS %{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml} cd NTS -%if "%{php_version}" > "8.1" -%patch0 -p1 -%endif extver=$(sed -n '/#define PHP_PECL_HTTP_VERSION/{s/.* "//;s/".*$//;p}' php_http.h) if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}%{?gh_date:dev}"; then : Error: Upstream HTTP version is now ${extver}, expecting %{upstream_version}%{?upstream_prever}%{?gh_date:dev}. @@ -237,9 +232,8 @@ done rm ?TS/tests/client021.phpt rm ?TS/tests/client022.phpt rm ?TS/tests/client027.phpt -# https://github.com/m6w6/ext-http/issues/116 -rm ?TS/tests/client031.phpt -rm ?TS/tests/client032.phpt +: https://github.com/m6w6/ext-http/issues/120 +rm ?TS/tests/client012.phpt export REPORT_EXIT_STATUS=1 @@ -337,11 +331,14 @@ fi %changelog +* Tue Aug 31 2021 Remi Collet <remi@remirepo.net> - 4.2.0-1 +- update to 4.2.0 + * Wed Aug 4 2021 Remi Collet <remi@remirepo.net> - 4.1.0-5 - add fix for 8.1.0beta2 from upstream and from https://github.com/m6w6/ext-http/pull/118 -* Mon Jul 23 2021 Remi Collet <remi@remirepo.net> - 4.1.0-4 +* Mon Jul 26 2021 Remi Collet <remi@remirepo.net> - 4.1.0-4 - ignore 2 more tests failing with libcurl 7.77 * Mon Apr 19 2021 Remi Collet <remi@remirepo.net> - 4.1.0-1 |