changelog
[m6w6/ext-http] / CHANGELOG.md
1 # ChangeLog v3
2
3 ## 3.3.0, 2022-MM-DD
4
5 * Fix http\Client::requeue() not updating response callback
6 * Backport bug fixes and features from v4:
7 * Fixed configure reliably finding the right libcurl features available
8 * Fixed cookie handling with libcurl 7.77+ and consistently across all
9 supported libcurl versions (follow-up to gh issue #116)
10 * Fixed cookies failing with libcurl >= 7.77 (see gh issue #116)
11 * Fixed tests using $_ENV instead of getenv() to find executables in PATH (see gh issue #113)
12 * Fixed configure on systems which do not provide icu-config
13 * Fixed gh-issue #89: Cookie handling cannot be disabled since v3.2.1
14 * Added http\Env::reset(): resets internal HTTP request cache (see gh issue #90)
15 * Added request options:
16 * http\Client\Curl::$abstract_unix_socket
17 * http\Client\Curl::$altsvc
18 * http\Client\Curl::$altsvc_ctrl
19 * http\Client\Curl::$aws_sigv4
20 * http\Client\Curl::$doh_url
21 * http\Client\Curl::$dns_shuffle_addresses
22 * http\Client\Curl::$haproxy_protocol
23 * http\Client\Curl::$hsts
24 * http\Client\Curl::$hsts_ctrl
25 * http\Client\Curl::$http09_allowed
26 * http\Client\Curl::$maxage_conn
27 * http\Client\Curl::$pinned_publickey
28 * http\Client\Curl::$proxy_ssl
29 * http\Client\Curl::$socks5_auth
30 * http\Client\Curl::$tcp_fastopen
31 * http\Client\Curl::$tls13_ciphers
32 * http\Client\Curl::$xoauth2_bearer
33 * Added request option constants:
34 * http\Client\Curl\AUTH_AWS_SIGV4
35 * http\Client\Curl\AUTH_BEARER
36 * http\Client\Curl\AUTH_NONE
37 * http\Client\Curl\HTTP_VERSION_2_PRIOR_KNOWLEDGE
38 * http\Client\Curl\HTTP_VERSION_3
39 * http\Client\Curl\SSL_VERSION_MAX_*
40 * http\Client\Curl\SSL_VERSION_TLSv1_3
41 * Added library version constants:
42 * http\Client\Curl\Versions\BROTLI
43 * http\Client\Curl\Versions\CAINFO
44 * http\Client\Curl\Versions\CAPATH
45 * http\Client\Curl\Versions\HYPER
46 * http\Client\Curl\Versions\ICONV
47 * http\Client\Curl\Versions\NGHTTP2
48 * http\Client\Curl\Versions\QUIC
49 * http\Client\Curl\Versions\ZSTD
50
51 ## 3.2.5, 2022-02-25
52
53 * Fixed gh-issue #123: Segfault with libcurl 7.81
54
55 ## 3.2.4, 2021-01-13
56
57 * Fixed configure on systems which do not provide icu-config
58 * Fixed gh-issue #89: Cookie handling cannot be disabled since v3.2.1
59
60 ## 3.2.3, 2019-10-29
61
62 * Fixed Windows build (Jan Ehrhardt)
63
64 ## 3.2.2, 2019-10-24
65
66 * PHP-7.4 compatibility
67 * Fixed gh-issue #92: http\Message\Body::addForm() discards numeric names
68 * Fixed gh-issue #95: typo in http\Message::getResponseCode()'s error message
69
70 ## 3.2.1, 2019-06-07
71
72 * Fixed gh-issue #88: Unable to run test suite (Remi Collet)
73 * Fixed gh-issue #86: test failure with curl 7.64
74 * Fixed gh-issue #85: [-Wformat-extra-args] build warnings
75 * Fixed gh-issue #84: segfault and build failure since curl 7.62
76 * Fixed gh-issue #82: Test harness improvements (Chris Wright)
77 * Fixed gh-issue #64: compress and connecttimeout interfere with low_speed_limit (@rcanavan)
78 * Fixed http\QueryString::getGlobalInstance()
79 * Fixed missing 2nd reflection argument info of http\Client::notify()
80 * Fixed PHP-7.4 compatibility
81
82 ## 3.2.0, 2018-07-19
83
84 * PHP-7.2 compatibility
85 * Fixed gh-issue #73: build fails with libidn and libidn2
86 + Added brotli compression support
87 + Implemented gh-issue #58: Notify observers before any request is built
88
89 Changes from RC1:
90 * Fixed gh-issue #78: PHP-7.3 build crashes
91
92 ## 3.2.0RC1, 2018-04-09
93
94 * PHP-7.2 compatibility
95 * Fixed gh-issue #73: build fails with libidn and libidn2
96 + Added brotli compression support
97 + Implemented gh-issue #58: Notify observers before any request is built
98
99 ## 3.1.0, 2016-12-12
100
101 + Added http\Client\Curl\User interface for userland event loops
102 + Added http\Url::IGNORE_ERRORS, http\Url::SILENT_ERRORS and http\Url::STDFLAGS
103 + Added http\Client::setDebug(callable $debug)
104 + Added http\Client\Curl\FEATURES constants and namespace
105 + Added http\Client\Curl\VERSIONS constants and namespace
106 + Added share_cookies and share_ssl (libcurl >= 7.23.0) options to http\Client::configure()
107 + http\Client uses curl_share handles to properly share cookies and SSL/TLS sessions between requests
108 + Improved configure checks for default CA bundles
109 + Improved negotiation precision
110 * 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.
111 * Fix gh-issue #50: http\Client::dequeue() within http\Client::setDebug() causes segfault (Mike, Maik Wagner)
112 * Fix gh-issue #47: http\Url: Null pointer deref in sanitize_value() (Mike, @rc0r)
113 * Fix gh-issue #45: HTTP/2 response message parsing broken with libcurl >= 7.49.1 (Mike)
114 * Fix gh-issue #43: Joining query with empty original variable in query (Mike, Sander Backus)
115 * Fix gh-issue #42: fatal error when using punycode in URLs (Mike, Sebastian Thielen)
116 * Fix gh-issue #41: Use curl_version_info_data.features when initializing options (Mike)
117 * Fix gh-issue #40: determinde the SSL backend used by curl at runtime (Mike, @rcanavan)
118 * Fix gh-issue #39: Notice: http\Client::enqueue(): Could not set option proxy_service_name (Mike, @rcanavan)
119 * Fix gh-issue #38: Persistent curl handles: error code not properly reset (Mike, @afflerbach)
120 * Fix gh-issue #36: Unexpected cookies sent if persistent_handle_id is used (Mike, @rcanavan, @afflerbach)
121 * Fix gh-issue #34: allow setting multiple headers with the same name (Mike, @rcanavan)
122 * Fix gh-issue #33: allow setting prodyhost request option to NULL (Mike, @rcanavan)
123 * Fix gh-issue #31: add/improve configure checks for default CA bundle/path (Mike, @rcanavan)
124
125 Changes from beta1:
126 * Fixed recursive calls to the event loop dispatcher
127
128 Changes from beta2:
129 + Improved configure checks for IDNA libraries (added --with-http-libicu-dir, --with-http-libidnkit{,2}-dir, --with-http-libidn2-dir)
130 * Fix bug #73055: crash in http\QueryString (Mike, @rc0r) (CVE-2016-7398)
131 * Fix bug #73185: Buffer overflow in HTTP parse_hostinfo() (Mike, @rc0r) (CVE-2016-7961)
132 * Fix HTTP/2 version parser for older libcurl versions (Mike)
133 * Fix gh-issue #52: Underscores in host names: libidn Failed to parse IDN (Mike, @canavan)
134
135 ## 3.1.0RC1, 2016-10-04
136
137 + Added http\Client\Curl\User interface for userland event loops
138 + Added http\Url::IGNORE_ERRORS, http\Url::SILENT_ERRORS and http\Url::STDFLAGS
139 + Added http\Client::setDebug(callable $debug)
140 + Added http\Client\Curl\FEATURES constants and namespace
141 + Added http\Client\Curl\VERSIONS constants and namespace
142 + Added share_cookies and share_ssl (libcurl >= 7.23.0) options to http\Client::configure()
143 + http\Client uses curl_share handles to properly share cookies and SSL/TLS sessions between requests
144 + Improved configure checks for default CA bundles
145 + Improved negotiation precision
146 * 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.
147 * Fix gh-issue #50: http\Client::dequeue() within http\Client::setDebug() causes segfault (Mike, Maik Wagner)
148 * Fix gh-issue #47: http\Url: Null pointer deref in sanitize_value() (Mike, @rc0r)
149 * Fix gh-issue #45: HTTP/2 response message parsing broken with libcurl >= 7.49.1 (Mike)
150 * Fix gh-issue #43: Joining query with empty original variable in query (Mike, Sander Backus)
151 * Fix gh-issue #42: fatal error when using punycode in URLs (Mike, Sebastian Thielen)
152 * Fix gh-issue #41: Use curl_version_info_data.features when initializing options (Mike)
153 * Fix gh-issue #40: determinde the SSL backend used by curl at runtime (Mike, @rcanavan)
154 * Fix gh-issue #39: Notice: http\Client::enqueue(): Could not set option proxy_service_name (Mike, @rcanavan)
155 * Fix gh-issue #38: Persistent curl handles: error code not properly reset (Mike, @afflerbach)
156 * Fix gh-issue #36: Unexpected cookies sent if persistent_handle_id is used (Mike, @rcanavan, @afflerbach)
157 * Fix gh-issue #34: allow setting multiple headers with the same name (Mike, @rcanavan)
158 * Fix gh-issue #33: allow setting prodyhost request option to NULL (Mike, @rcanavan)
159 * Fix gh-issue #31: add/improve configure checks for default CA bundle/path (Mike, @rcanavan)
160
161 Changes from beta1:
162 * Fixed recursive calls to the event loop dispatcher
163
164 Changes from beta2:
165 + Improved configure checks for IDNA libraries (added --with-http-libicu-dir, --with-http-libidnkit{,2}-dir, --with-http-libidn2-dir)
166 * Fix bug #73055: crash in http\QueryString (Mike, @rc0r) (CVE-2016-7398)
167 * Fix bug #73185: Buffer overflow in HTTP parse_hostinfo() (Mike, @rc0r) (CVE-2016-7961)
168 * Fix HTTP/2 version parser for older libcurl versions (Mike)
169 * Fix gh-issue #52: Underscores in host names: libidn Failed to parse IDN (Mike, @canavan)
170
171 ## 3.1.0beta2, 2016-09-07
172
173 + Added http\Client\Curl\User interface for userland event loops
174 + Added http\Url::IGNORE_ERRORS, http\Url::SILENT_ERRORS and http\Url::STDFLAGS
175 + Added http\Client::setDebug(callable $debug)
176 + Added http\Client\Curl\FEATURES constants and namespace
177 + Added http\Client\Curl\VERSIONS constants and namespace
178 + Added share_cookies and share_ssl (libcurl >= 7.23.0) options to http\Client::configure()
179 + http\Client uses curl_share handles to properly share cookies and SSL/TLS sessions between requests
180 + Improved configure checks for default CA bundles
181 + Improved negotiation precision
182 * 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.
183 * Fix gh-issue #50: http\Client::dequeue() within http\Client::setDebug() causes segfault (Mike, Maik Wagner)
184 * Fix gh-issue #47: http\Url: Null pointer deref in sanitize_value() (Mike, @rc0r)
185 * Fix gh-issue #45: HTTP/2 response message parsing broken with libcurl >= 7.49.1 (Mike)
186 * Fix gh-issue #43: Joining query with empty original variable in query (Mike, Sander Backus)
187 * Fix gh-issue #42: fatal error when using punycode in URLs (Mike, Sebastian Thielen)
188 * Fix gh-issue #41: Use curl_version_info_data.features when initializing options (Mike)
189 * Fix gh-issue #40: determinde the SSL backend used by curl at runtime (Mike, @rcanavan)
190 * Fix gh-issue #39: Notice: http\Client::enqueue(): Could not set option proxy_service_name (Mike, @rcanavan)
191 * Fix gh-issue #38: Persistent curl handles: error code not properly reset (Mike, @afflerbach)
192 * Fix gh-issue #36: Unexpected cookies sent if persistent_handle_id is used (Mike, @rcanavan, @afflerbach)
193 * Fix gh-issue #34: allow setting multiple headers with the same name (Mike, @rcanavan)
194 * Fix gh-issue #33: allow setting prodyhost request option to NULL (Mike, @rcanavan)
195 * Fix gh-issue #31: add/improve configure checks for default CA bundle/path (Mike, @rcanavan)
196
197 Changes from beta1:
198 * Fixed recursive calls to the event loop dispatcher
199
200 ## 3.1.0beta1, 2016-08-22
201
202 + Added http\Client\Curl\User interface for userland event loops
203 + Added http\Url::IGNORE_ERRORS, http\Url::SILENT_ERRORS and http\Url::STDFLAGS
204 + Added http\Client::setDebug(callable $debug)
205 + Added http\Client\Curl\FEATURES constants and namespace
206 + Added http\Client\Curl\VERSIONS constants and namespace
207 + Added share_cookies and share_ssl (libcurl >= 7.23.0) options to http\Client::configure()
208 + http\Client uses curl_share handles to properly share cookies and SSL/TLS sessions between requests
209 + Improved configure checks for default CA bundles
210 + Improved negotiation precision
211 * 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.
212 * Fix gh-issue #50: http\Client::dequeue() within http\Client::setDebug() causes segfault (Mike, Maik Wagner)
213 * Fix gh-issue #47: http\Url: Null pointer deref in sanitize_value() (Mike, @rc0r)
214 * Fix gh-issue #45: HTTP/2 response message parsing broken with libcurl >= 7.49.1 (Mike)
215 * Fix gh-issue #43: Joining query with empty original variable in query (Mike, Sander Backus)
216 * Fix gh-issue #42: fatal error when using punycode in URLs (Mike, Sebastian Thielen)
217 * Fix gh-issue #41: Use curl_version_info_data.features when initializing options (Mike)
218 * Fix gh-issue #40: determinde the SSL backend used by curl at runtime (Mike, @rcanavan)
219 * Fix gh-issue #39: Notice: http\Client::enqueue(): Could not set option proxy_service_name (Mike, @rcanavan)
220 * Fix gh-issue #38: Persistent curl handles: error code not properly reset (Mike, @afflerbach)
221 * Fix gh-issue #36: Unexpected cookies sent if persistent_handle_id is used (Mike, @rcanavan, @afflerbach)
222 * Fix gh-issue #34: allow setting multiple headers with the same name (Mike, @rcanavan)
223 * Fix gh-issue #33: allow setting prodyhost request option to NULL (Mike, @rcanavan)
224 * Fix gh-issue #31: add/improve configure checks for default CA bundle/path (Mike, @rcanavan)
225
226 ## 3.0.1, 2016-03-09
227
228 * Fix php-bug #71719: Buffer overflow in HTTP url parsing functions (Mike, rc0r)
229 * Fix gh-issue #28: Possible null pointer dereference in php_http_url_mod() (rc0r)
230 * Fix gh-issue #21: Fix PHP7 config.w32 (Jan Ehrhardt)
231 * Fix gh-issue #20: setSslOptions notice with curl 7.43 (Mike, Vitaliy Demidov)
232
233 ## 3.0.0, 2016-01-19
234
235 PHP7 compatible release based on the 2.5.x series with the following backwards incompatible changes:
236 - removed http\Url::FROM_ENV from the default flags of the http\Url constructor, use http\Env\Url instead
237
238 ## 3.0.0RC1, 2015-12-07
239
240 PHP7 compatible release based on the 2.5.x series with the following backwards incompatible changes:
241 - removed http\Url::FROM_ENV from the default flags of the http\Url constructor, use http\Env\Url instead