<email>mike@php.net</email>
<active>yes</active>
</lead>
- <date>2016-09-12</date>
+ <date>2021-08-30</date>
<version>
- <release>3.1.0RC1</release>
- <api>3.1.0</api>
+ <release>4.2.0</release>
+ <api>4.2.0</api>
</version>
<stability>
- <release>beta</release>
+ <release>stable</release>
<api>stable</api>
</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
-
-Changes from beta2:
-* Fix bug #73055: crash in http\QueryString (Mike, @rc0r)
-* Fix HTTP/2 version parser for older libcurl versions (Mike)
+* Fixed PHP-8.1 compatibility (see gh issues #114, #115 and #118)
+* Fixed cookies failing with libcurl >= 7.77 (see gh issue #116)
+* Fixed tests using $_ENV instead of getenv() to find executables in PATH (see gh issue #113)
+* Added http\Env::reset(): resets internal HTTP request cache (see gh issue #90)
]]></notes>
<contents>
<dir name="/">
<file role="doc" name="AUTHORS"/>
<file role="doc" name="BUGS"/>
+ <file role="doc" name="CHANGELOG.md"/>
<file role="doc" name="CONTRIBUTING.md"/>
+ <file role="doc" name="CVE.md"/>
<file role="doc" name="CREDITS"/>
<file role="doc" name="LICENSE"/>
<file role="doc" name="README.md"/>
<file role="src" name="config.w32"/>
<file role="src" name="Makefile.frag"/>
<file role="src" name="php_http.h"/>
+ <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"/>
+ </dir>
+ </dir>
<dir name="src">
<file role="src" name="php_http_api.h"/>
<file role="src" name="php_http_buffer.c"/>
<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="client027.phpt"/>
<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="envrequestform.phpt"/>
<file role="test" name="envrequestheader001.phpt"/>
<file role="test" name="envrequestquery.phpt"/>
+ <file role="test" name="envreset001.phpt"/>
<file role="test" name="envresponse001.phpt"/>
<file role="test" name="envresponse002.phpt"/>
<file role="test" name="envresponse003.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-issue11.phpt"/>
<file role="test" name="gh-issue12.phpt"/>
<file role="test" name="gh-issue42.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="test" name="urlparser009.phpt"/>
<file role="test" name="urlparser010.phpt"/>
<file role="test" name="urlparser011.phpt"/>
+ <file role="test" name="urlparser012.phpt"/>
+ <file role="test" name="urlparser013.phpt"/>
<file role="test" name="version001.phpt"/>
</dir>
<dir name="scripts">
<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>
name="with-http-libevent-dir"
prompt="where to find libevent"
default="/usr" />
+ <configureoption
+ name="with-http-libicu-dir"
+ prompt="where to find libicu"
+ default="/usr" />
+ <configureoption
+ name="with-http-libidn2-dir"
+ prompt="where to find libidn2"
+ default="/usr" />
<configureoption
name="with-http-libidn-dir"
prompt="where to find libidn"
default="/usr" />
+ <configureoption
+ name="with-http-libidnkit2-dir"
+ prompt="where to find libidnkit2"
+ default="/usr" />
+ <configureoption
+ name="with-http-libidnkit-dir"
+ prompt="where to find libidnkit"
+ default="/usr" />
</extsrcrelease>
<changelog />
</package>