<email>mike@php.net</email>
<active>yes</active>
</lead>
- <date>2016-12-12</date>
+ <date>2021-04-19</date>
<version>
- <release>3.1.0</release>
- <api>3.1.0</api>
+ <release>4.1.0</release>
+ <api>4.0.0</api>
</version>
<stability>
<release>stable</release>
</stability>
<license uri="http://copyfree.org/content/standard/licenses/2bsd/license.txt">BSD-2-Clause</license>
<notes><![CDATA[
-+ Added http\Client\Curl\User interface for userland event loops
-+ Added http\Url::IGNORE_ERRORS, http\Url::SILENT_ERRORS and http\Url::STDFLAGS
-+ Added http\Client::setDebug(callable $debug)
-+ Added http\Client\Curl\FEATURES constants and namespace
-+ Added http\Client\Curl\VERSIONS constants and namespace
-+ Added share_cookies and share_ssl (libcurl >= 7.23.0) options to http\Client::configure()
-+ http\Client uses curl_share handles to properly share cookies and SSL/TLS sessions between requests
-+ Improved configure checks for default CA bundles
-+ Improved negotiation precision
-* Fixed regression introduced by http\Params::PARSE_RFC5987: negotiation using the params parser would receive param keys without the trailing asterisk, stripped by http\Params::PARSE_RFC5987.
-* Fix gh-issue #50: http\Client::dequeue() within http\Client::setDebug() causes segfault (Mike, Maik Wagner)
-* Fix gh-issue #47: http\Url: Null pointer deref in sanitize_value() (Mike, @rc0r)
-* Fix gh-issue #45: HTTP/2 response message parsing broken with libcurl >= 7.49.1 (Mike)
-* Fix gh-issue #43: Joining query with empty original variable in query (Mike, Sander Backus)
-* Fix gh-issue #42: fatal error when using punycode in URLs (Mike, Sebastian Thielen)
-* Fix gh-issue #41: Use curl_version_info_data.features when initializing options (Mike)
-* Fix gh-issue #40: determinde the SSL backend used by curl at runtime (Mike, @rcanavan)
-* Fix gh-issue #39: Notice: http\Client::enqueue(): Could not set option proxy_service_name (Mike, @rcanavan)
-* Fix gh-issue #38: Persistent curl handles: error code not properly reset (Mike, @afflerbach)
-* Fix gh-issue #36: Unexpected cookies sent if persistent_handle_id is used (Mike, @rcanavan, @afflerbach)
-* Fix gh-issue #34: allow setting multiple headers with the same name (Mike, @rcanavan)
-* Fix gh-issue #33: allow setting prodyhost request option to NULL (Mike, @rcanavan)
-* Fix gh-issue #31: add/improve configure checks for default CA bundle/path (Mike, @rcanavan)
-Changes from beta1:
-* Fixed recursive calls to the event loop dispatcher
+ * Added request options:
+ * http\Client\Curl::$abstract_unix_socket
+ * http\Client\Curl::$altsvc
+ * http\Client\Curl::$altsvc_ctrl
+ * http\Client\Curl::$aws_sigv4
+ * http\Client\Curl::$doh_url
+ * http\Client\Curl::$dns_shuffle_addresses
+ * http\Client\Curl::$haproxy_protocol
+ * http\Client\Curl::$hsts
+ * http\Client\Curl::$hsts_ctrl
+ * http\Client\Curl::$http09_allowed
+ * http\Client\Curl::$maxage_conn
+ * http\Client\Curl::$pinned_publickey
+ * http\Client\Curl::$proxy_ssl
+ * http\Client\Curl::$socks5_auth
+ * http\Client\Curl::$tcp_fastopen
+ * http\Client\Curl::$tls13_ciphers
+ * http\Client\Curl::$xoauth2_bearer
+ * Added request option constants:
+ * http\Client\Curl\AUTH_AWS_SIGV4
+ * http\Client\Curl\AUTH_BEARER
+ * http\Client\Curl\AUTH_NONE
+ * http\Client\Curl\HTTP_VERSION_2_PRIOR_KNOWLEDGE
+ * http\Client\Curl\HTTP_VERSION_3
+ * http\Client\Curl\SSL_VERSION_MAX_*
+ * http\Client\Curl\SSL_VERSION_TLSv1_3
+ * Added library version constants:
+ * http\Client\Curl\Versions\BROTLI
+ * http\Client\Curl\Versions\CAINFO
+ * http\Client\Curl\Versions\CAPATH
+ * http\Client\Curl\Versions\HYPER
+ * http\Client\Curl\Versions\ICONV
+ * http\Client\Curl\Versions\NGHTTP2
+ * http\Client\Curl\Versions\QUIC
+ * http\Client\Curl\Versions\ZSTD
-Changes from beta2:
-+ Improved configure checks for IDNA libraries (added --with-http-libicu-dir, --with-http-libidnkit{,2}-dir, --with-http-libidn2-dir)
-* Fix bug #73055: crash in http\QueryString (Mike, @rc0r) (CVE-2016-7398)
-* Fix bug #73185: Buffer overflow in HTTP parse_hostinfo() (Mike, @rc0r) (CVE-2016-7961)
-* Fix HTTP/2 version parser for older libcurl versions (Mike)
-* Fix gh-issue #52: Underscores in host names: libidn Failed to parse IDN (Mike, @canavan)
]]></notes>
<contents>
<dir name="/">
<dir name="autoconf">
<dir name="pecl">
<file role="src" name="pecl.m4"/>
+ <file role="src" name="libbrotli.m4"/>
<file role="src" name="libcurl.m4"/>
<file role="src" name="libevent.m4"/>
<file role="src" name="zlib.m4"/>
<file role="src" name="php_http_curl.h"/>
<file role="src" name="php_http_encoding.c"/>
<file role="src" name="php_http_encoding.h"/>
+ <file role="src" name="php_http_encoding_zlib.c"/>
+ <file role="src" name="php_http_encoding_zlib.h"/>
+ <file role="src" name="php_http_encoding_brotli.c"/>
+ <file role="src" name="php_http_encoding_brotli.h"/>
<file role="src" name="php_http_env.c"/>
<file role="src" name="php_http_env.h"/>
<file role="src" name="php_http_env_request.c"/>
</dir>
<dir name="helper">
<file role="test" name="cookie.inc"/>
+ <file role="test" name="cookie1.inc"/>
+ <file role="test" name="cookie2.inc"/>
<file role="test" name="dump.inc"/>
+ <file role="test" name="env.inc"/>
<file role="test" name="http2.crt"/>
<file role="test" name="http2.key"/>
<file role="test" name="pipeline.inc"/>
<file role="test" name="client028.phpt"/>
<file role="test" name="client029.phpt"/>
<file role="test" name="client030.phpt"/>
+ <file role="test" name="client031.phpt"/>
+ <file role="test" name="client032.phpt"/>
<file role="test" name="clientrequest001.phpt"/>
<file role="test" name="clientrequest002.phpt"/>
<file role="test" name="clientrequest003.phpt"/>
<file role="test" name="encstream007.phpt"/>
<file role="test" name="encstream008.phpt"/>
<file role="test" name="encstream009.phpt"/>
+ <file role="test" name="encstream015.phpt"/>
+ <file role="test" name="encstream016.phpt"/>
+ <file role="test" name="encstream017.phpt"/>
+ <file role="test" name="encstream018.phpt"/>
+ <file role="test" name="encstream019.phpt"/>
<file role="test" name="envrequestbody001.phpt"/>
<file role="test" name="envrequestcookie001.phpt"/>
<file role="test" name="envrequestfiles001.phpt"/>
<file role="test" name="envresponseheader001.phpt"/>
<file role="test" name="envresponseranges001.phpt"/>
<file role="test" name="etag001.phpt"/>
+ <file role="test" name="filterbrotli.phpt"/>
<file role="test" name="filterchunked.phpt"/>
<file role="test" name="filterzlib.phpt"/>
<file role="test" name="gh-issue6.phpt"/>
<file role="test" name="gh-issue47.phpt"/>
<file role="test" name="gh-issue48.phpt"/>
<file role="test" name="gh-issue50.phpt"/>
+ <file role="test" name="gh-issue63.phpt"/>
+ <file role="test" name="gh-issue92.phpt"/>
<file role="test" name="header001.phpt"/>
<file role="test" name="header002.phpt"/>
<file role="test" name="header003.phpt"/>
<file role="test" name="message003.phpt"/>
<file role="test" name="message004.phpt"/>
<file role="test" name="message005.phpt"/>
- <file role="test" name="message006.phpt"/>
<file role="test" name="message007.phpt"/>
<file role="test" name="message008.phpt"/>
<file role="test" name="message009.phpt"/>
<file role="test" name="params016.phpt"/>
<file role="test" name="params017.phpt"/>
<file role="test" name="phpinfo.phpt"/>
- <file role="test" name="propertyproxy001.phpt"/>
- <file role="test" name="querystring001.phpt"/>
+ <file role="test" name="querystring001_a.phpt"/>
<file role="test" name="querystring002.phpt"/>
<file role="test" name="querystring003.phpt"/>
<file role="test" name="serialize001.phpt"/>
<file role="src" name="check_package-xml.php"/>
<file role="src" name="gen_curlinfo.php"/>
<file role="src" name="gen_stubs.php"/>
- <file role="src" name="gen_travis_yml.php"/>
+ <file role="src" name="gen_github_workflow_ci.php"/>
<file role="src" name="gen_utf8.php"/>
</dir>
</dir>
<dependencies>
<required>
<php>
- <min>7.0.0</min>
+ <min>8.0.0</min>
</php>
<pearinstaller>
<min>1.4.1</min>
<min>2.0.0dev</min>
<providesextension>raphf</providesextension>
</package>
- <package>
- <name>propro</name>
- <channel>pecl.php.net</channel>
- <min>2.0.0dev</min>
- <providesextension>propro</providesextension>
- </package>
</required>
<optional>
<extension><name>hash</name></extension>