1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366
|
Revision history for Net-Async-HTTP
0.50 2024-10-22
[CHANGES]
* Declare test-time dependencies in `test_requires` field
* Pod documentation style updates
0.49 2023-06-06
[CHANGES]
* Support proxy by UNIX socket
(thanks Erik Huelsmann <ehuels@gmail.com>)
* Added a `->DELETE` convenience method (RT139589)
* `use v5.14` in all perl files
* Use Test2::V0 for unit testing
0.48 2021-03-08
[CHANGES]
* Add PATCH method convenience wrapper
* Updates to documentation style
[BUGFIXES]
* Make sure to set port number in Host header if using a non-default
port for the URI scheme (RT134411)
0.47 2020-05-13
[CHANGES]
* Updated for Metrics::Any 0.05
0.46 2020-05-12
[CHANGES]
* Report client-side HTTP metrics using Metrics::Any, analogous to
the server ones reported by Net::Async::HTTP::Server
0.45 2019-11-26 17:32:42
[CHANGES]
* Allow configuring additional default headers to set in every
outbound request (RT125642)
* Added config option to enforce close after every request (RT128952)
[BUGFIXES]
* Correct request encoding for non-canonical headers (RT131040)
0.44 2019-02-17 14:11:57
[BUGFIXES]
* Regnerate embedded SSL testing certs
* No actual code changes
0.43 2018-11-14 22:05:27
[CHANGES]
* Use IPTOS_* constants directly from Socket 2.010
* Pass SNI hostname when making SSL connections (RT94605)
[BUGFIXES]
* Proxy connections require full authority string (RT119961)
0.42 2018-04-03 15:37:17
[CHANGES]
* Optionally support SOCKS5 proxies, using Net::Async::SOCKS
(RT124729)
* Minor docs improvements
[BUGFIXES]
* Ensure that on_header is still invoked for a final redirect that
isn't followed (RT124920)
* Better detection of $Socket::VERSION (RT122527)
0.41 2016/06/03 19:00:47
[BUGFIXES]
* Ensure all kept-alive connections are properly closed when removing
an instance from its containing IO::Async::Loop
0.40 2015/07/27 19:53:19
[CHANGES]
* Added 'on_ready' parameter to ->request method, for interacting
with the socket directly
* Allow optional restriction of connect family
0.39 2015/07/13 15:34:29
[CHANGES]
* Allow additional HTTP request headers to be supplied when in URI
mode
* Add require_SSL parameter that forbids plaintext requests
(RT101498)
* Announce that a future version may set a default value for
max_connections_per_host higher than 1
[BUGFIXES]
* Ensure that fail_on_error also applies to legacy-style
on_response+on_error continuations (RT102022)
* Avoid use of undef in an error message printing a warning
(RT101459)
0.38 2015/06/01 15:32:57
[CHANGES]
* More debug_printf() calls for better logging of connection-related
activity
[BUGFIXES]
* Ensure that failed connections are removed from the parent notifier
(RT102547)
* Make sure not to call length() on undefined values (RT102023)
* Ensure that the first request after connecting is only written
after the connection has been configured and has a notifier name
0.37 2014/12/13 15:06:06
[CHANGES]
* Major refactoring of Net::Async::HTTP::Connection internal closure-
generation logic
[BUGFIXES]
* Cancel pending connect Futures if pipelining means an existing
connection can be reused; handles failures better (RT99142)
* Attempt to handle the case where $f->done itself throws an
exception by at least maintaining internal state (RT100066)
0.36 2014/10/14 12:03:07
[CHANGES]
* Set the content of generated requests if a 'content' param is given
(RT97654)
* Store object-wide SSL params for convenience (RT98514)
* Clarify the final return value of the on_body_chunk handler
(RT98278)
* Nicer error message when a non-HTTP response header is received
(RT93231)
[BUGFIXES]
* 3xx responses without a Location header, and non-(GET|HEAD)
requests should not be redirected (RT98093)
0.35 2014/03/30 20:58:34
[BUGFIXES]
* Reparse URI scheme after redirect, so host/port/SSLness are reset
correctly (RT94303)
* Requeue the next pending request after an HTTP/1.0-style EOF
(RT94304)
* Require at least Compress::Bzip2 2.10 to do bzip2 decompression
Bugfixes sponsored by Cisco (http://www.cisco.com/)
0.34 2014/03/27 18:26:43
[BUGFIXES]
* Don't attempt to reconnect ready queue items that already have a
pending connection attempt (RT92904)
* Don't close over $responder, thus avoiding a reference cycle leak
(RT93232 / RT92728)
* Avoid relying on strong forward references in Future, by creating
intentional cycles on pending Futures. Workaround for bugfix in
upcoming Future release.
Bugfixes sponsored by NET-A-PORTER (http://www.net-a-porter.com/)
0.33 2014/01/22 23:48:40
[CHANGES]
* Include connection flieno in notifier_name in case of multiple
connections to a given host+port
* Use different Future failure operation names for timeout and
stall_timeout
[BUGFIXES]
* Zlib compression needs Compress::Raw::Zlib 2.057 or newer
* Ensure that unpipelined requests can be cancelled
* Ensure that other pending requests on a connection are also
errored out when connection receives EOF
0.32 2013/11/19 14:09:18
[CHANGES]
* Optionally decode encoded content and set the Accept-Encoding
header of outbound requests. Currently defaults off, but may become
true in a later version.
[BUGFIXES]
* Handle resolve/connect errors and pipeline queue flushing after
cancellation correctly
0.31 2013/11/04 18:04:30
[CHANGES]
* Allow a plain string URI, upgrading it to a URI object (RT89269)
* Added ->POST shortcut method, similar to ->GET and ->HEAD
* Extract HTTP basic auth. information from the URL in an
HTTP::Request (RT89775)
[BUGFIXES]
* Remember to keep resetting the stall timer when receiving body
content
* Fix awkward race between stall_timer and ->cancel
* Note dependency on Test::Refcount
0.30 2013/10/20 02:08:01
[CHANGES]
* Use Future->new->fail to return failing immediate Futures
* Ensure Future failures all use standard IO::Async style of
($message, NAME, ...)
[BUGFIXES]
* Ensure that fail_on_error doesn't cause non-error responses to fail
(RT88996)
0.29 2013/09/22 02:50:39
[CHANGES]
* Added 'on_body_write' callback
* Reordering of documentation to emphasise futures first
[BUGFIXES]
* Fix handling of chunk header when split across reads
0.28 2013/09/13 20:40:14
[CHANGES]
* Rewrite back into being a subclass of IO::Async::Stream instead of
using IO::Async::Protocol::Stream
* IO::Async::Stream 0.59 allows stall timeout detection during writes
now as well
[BUGFIXES]
* Closed connections should drop the ready queue, so they don't
accidentally try to process a second request
* Failure handling of corrupted chunk headers during chunked transfer
encoding
0.27 BUGFIXES:
* Ensure that $f->cancel on a request Future actually works properly
0.26 CHANGES:
* Added 'stall_timeout', at least for read operations
BUGFIXES:
* Fix NaHTTP+NaHTTP::Server unit tests for minimum version
requirements
0.25 BUGFIXES:
* Defend against ->setsockopt detecting SvPOK() of string values
* Test for both "Connection closed" and "Connection closed while
awaiting header" as OSes differ in behaviour
0.24 CHANGES:
* Optionally set IP_TOS field in sockets
* Remember to pass 'SSL' parameter around for requests on 'https'
scheme
0.23 BUGFIXES:
* Fix t/14conn-max.t failures - disable pipelining, wait for correct
peersock connection to become ready (it may not be [0])
0.22 CHANGES:
* Allow more control over per-host concurrency; either a pool with a
limit, or boundless growth of concurrency
0.21 CHANGES:
* Optional mode in which 4xx and 5xx HTTP errors are turned into
callback errors or Future failures
* Handle incoming 1xx informational responses
* Optionally set 'Expect' header for 100 Continue response
0.20 CHANGES:
* Improvements to timeout and cancellation handling
* Updated for Future 0.12; pass 'return' argument to
Future::Utils::repeat
* Use newer IO::Async::OS->socketpair in unit tests
0.19 CHANGES:
* Allow $http->do_request to return a Future object yielding the
eventual response
* Added convenient $http->GET and ->HEAD methods
* Many internal neatenings and rewrites to better support Futures
0.18 CHANGES:
* Default host/port/SSLness from URL in HTTP::Request if given
* Set Connection: keep-alive by default
* Presume that HTTP/1.1 connections can keep-alive by default
* Attempt to limit the number of outstanding requests in flight per
connection; keep others in a queue
BUGFIXES:
* Pass the same timer object down redirects so the same overall
timeout is reused
* Fix memory leak by remembering to remove closed NaHTTP::Protocol
children from containing NaHTTP
* Correctly terminate requests to connections closed during write
* Handle trailing whitespace after Chunked encoding chunk size
(thanks David Leadbeater)
0.17 CHANGES:
* Support optionally setting local host/port/addr (RT75431)
* Don't pipeline requests until the server is known to be at least
HTTP/1.1
BUGFIXES:
* Default request protocol to HTTP/1.1 so caller doesn't have to
(RT75830)
* http(s) port logic on numbers rather than protocol names (RT75615)
* Use more weaseling in timeout handlers to avoid cyclic reference
memory leak
0.16 BUGFIXES:
* Work around HTTP::Message's non-trimming of linear whitespace
(RT72843)
0.15 BUGFIXES:
* Better HTTP handling of "Connection: close" connections; close the
socket at the end of the response body or HEAD header.
0.14 CHANGES:
* Per-request timeouts
* Default port to http/https if not supplied explicitly
* Fill in Response ->previous on redirects - RT72791
* Improvements to unit tests
0.13 BUGFIXES:
* Handle redirect to https:// as well as http:// (RT71526)
* Fix use of conditional variable declaration that breaks on
Perl 5.14 (RT71545)
* Clean up connection cache after resolve, connect or SSL failures
(RT71530)
0.12 BUGFIXES:
* Wait for connect to complete when pipelining multiple requests down
the same connection initially (RT66189)
* When serialising a request, handle a full protocol://authority URI
by splitting protocol/authority parts out of it
0.11 BUGFIXES:
* Fix stalling t/12request-streaming.t test script that causes lots
of FAILs at test time
0.10 CHANGES:
* Support streaming of request body content
* Support HTTP::Cookies object as a cookie jar
* Allow proxy_host and proxy_port as ->configure parameters, to set
defaults for requests
0.09 CHANGES:
* Use IO::Async::Protocol->connect from 0.34
0.08 CHANGES:
* Support streaming of response body content
* Support SSL if IO::Async::SSL is installed
0.07 CHANGES:
* base on IO::Async::Protocol::Stream
0.06 CHANGES:
* When POSTing content that isn't form data, expect to be given its
content type
0.05 CHANGES:
* Added Test::Pod testing
* Created example wget-style script
* Documentation neatening
* More accurate 'requires' in Build.PL; hopefully to keep CPANTS
happy
0.04 CHANGES:
* Added 'use warnings'
* Updated to IO::Async 0.21 style
* Various small documentation and test script updates
0.03 CHANGES:
* Support server-local HTTP redirects
0.02 CHANGES:
* Support HTTP redirects
BUGFIXES:
* Declare dependency on HTTP::Request and HTTP::Response
0.01 First version, released on an unsuspecting world.
|