summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PHPINFO2
-rw-r--r--REFLECTION171
-rw-r--r--pecl_http-php81.patch846
-rw-r--r--php-pecl-http.spec17
4 files changed, 157 insertions, 879 deletions
diff --git a/PHPINFO b/PHPINFO
index bbf55e0..3d43d99 100644
--- a/PHPINFO
+++ b/PHPINFO
@@ -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
diff --git a/REFLECTION b/REFLECTION
index 08a7638..23dceb2 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -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(&param);
- }
-
--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