<email>mike@php.net</email>
<active>yes</active>
</lead>
- <date>2016-08-22</date>
+ <date>2020-12-01</date>
<version>
- <release>3.1.0beta1</release>
- <api>3.1.0</api>
+ <release>4.0.0</release>
+ <api>4.0.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)
+ >*NOTE:*
+ v4.x will be PHP-8 only, v3.x continues PHP-7 support
+
+ * PHP 8 compatibility
+ - Drop ext-propro support
+ PHP 8 removes the object get/set API from the ZendEngine, which renders
+ that extension dysfunctional. As a consequence, the header property of
+ http\Message and derived classes cannot be modified in place, and thus
+ by reference.
]]></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="bug69313.phpt"/>
<file role="test" name="bug69357.phpt"/>
<file role="test" name="bug71719.phpt"/>
+ <file role="test" name="bug73055.phpt"/>
<file role="test" name="client001.phpt"/>
<file role="test" name="client002.phpt"/>
<file role="test" name="client003.phpt"/>
<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="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="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>