ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-HTTP/Changes
Revision: 1.97
Committed: Mon Apr 27 12:14:12 2020 UTC (4 years ago) by root
Branch: MAIN
CVS Tags: rel-2_25
Changes since 1.96: +4 -1 lines
Log Message:
2.25

File Contents

# User Rev Content
1 root 1.2 Revision history for AnyEvent::HTTP
2 root 1.1
3 root 1.18 TODO: provide lwp_request function that takes an lwp http requets and returns a http response.
4 root 1.73 TODO: set_proxy hook
5     TODO: use proxy hook
6 root 1.86 TODO: on_upgrade, for 101 responses?
7 root 1.80 TODO: document session vs. sessionid correctly.
8 root 1.84 TODO: support proxy username:password in both proxy switch and set_proxy string (dzagashev@gmail.com)
9 root 1.85 TODO: remove "unexpectedly got a destructed handle"
10 root 1.76
11 root 1.90 TODO: maybe read big chunks in smaller portions for chunked-encoding + on_body.
12 root 1.85 TODO: callback as body (Kostirya)
13 root 1.86 TODO: infinite recursion(?) (Kostirya)
14 root 1.87 TODO: default rbuf_max value maybe? how about reading large chunks in small parts?
15 root 1.90 TODO: servers send empty reason, which then gets mangled with linear whitespace CRLF - maybe workaround?
16    
17     TODO: look into http 0.9 support (Kostirya <kostirya@gmail.com>)
18     TODO: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&%23038;d=PG01&%23038;p=1&%23038;u=/netahtml/PTO/srchnum.html&%23038;r=1&%23038;f=G&%23038;l=50&%23038;s1="20110298798".PGNR.&%23038;OS=DN/20110298798&%23038;RS=DN/20110298798
19 root 1.93 TODO: cookie_jar_extract should refuse when host is an ip literal
20     TODO: cookie_jar_et_cookie should reject cookies not matching their down server domain
21     TODO: cookie prefixes? https://tools.ietf.org/html/draft-ietf-httpbis-cookie-prefixes-00
22 root 1.97 TODO: default rbuf_max limit for header-reading, chunk header reading etc.
23 root 1.90
24 root 1.97 2.25 Mon Apr 27 14:11:40 CEST 2020
25     - fix incorrectly sending proxy requests to origin servers
26     when reusing proxy connections (analyzed and testcase by Ivan Robert).
27 root 1.95 - the sessionid parameter was documented as session in random
28     places - fix docs and keep using sessionid in the code as before.
29 root 1.94 - fix cookie format documentation.
30    
31 root 1.92 2.24 Thu Aug 30 03:23:03 CEST 2018
32 root 1.91 - bring cookie management more in line with RFC 6265; implement idn
33     matching for cookie domains.
34     - update cookie_jar version to 2, invalidate existing cookie jars.
35     - preserve original cookie domain attribute.
36     - also expire old cookie jars in cookie parser, just in case.
37 root 1.90 - further improve relative redirection code.
38     - comment out code that tried to detect possible bugs with persistent
39     connection caching, but since it never triggered, it's probably
40     working fine :)
41 root 1.89 - do not call on_body callback on a response that AE::HTTP will recurse
42     on internally (reported by Антон Онуфриев and Ruslan Zakirov).
43    
44 root 1.88 2.23 Sun Aug 28 11:30:33 CEST 2016
45     - relative redirects used the proxy schema instead of the request
46     url schema to generate the new url, which is wrong (analyzed by Felix
47     Ostmann).
48     - fix download example (reported by Felix Ostmann).
49    
50 root 1.86 2.22 Thu May 14 04:04:03 CEST 2015
51 root 1.85 - ipv6 literals were not correctly parsed (analyzed by Raphael Geissert).
52 root 1.83 - delete the body when mutating request to GET request when
53     redirecting (reported by joe trader).
54     - send proxy-authorization header to proxy when using CONNECT
55     (reported by dzagashev@gmail.com).
56     - do not send Proxy-Authroization header when not using a proxy.
57 root 1.85 - when retrying a persistent request, switch persistency off.
58     - added t/02_ip_literals.t.
59 root 1.83
60 root 1.81 2.21 Mon Jun 9 01:35:54 CEST 2014
61     - correctly keep body when redirecting POSTs, instead of
62     deleting them.
63    
64 root 1.80 2.2 Mon Jun 9 01:31:46 CEST 2014
65 root 1.79 - connection header was malformed (patch by Raphael Geissert).
66 root 1.77 - add lots of known idempotent methods from httpbis.
67 root 1.80 - implement relative location headers (rfc 7231), with fallback on URI.
68     - add support for status code 308 from rfc 7238.
69     - recommend URI.
70 root 1.77
71 root 1.76 2.15 Wed Nov 14 23:22:07 CET 2012
72     - use the recurse parameter to also limit the number of retries to be
73     done, avodiing endless loops with broken servers, as reported
74     by Carl Chambers.
75 root 1.74
76 root 1.75 2.14 Sun Apr 22 14:57:51 CEST 2012
77     - Time::Local::timegm croaks on out-of-range values. Don't let
78     this disturb AnyEvent::HTTP (reported by: tell me, I forgot...).
79    
80 root 1.74 2.13 Wed Jul 27 17:53:58 CEST 2011
81 root 1.73 - garbled chunked responses caused AnyEvent::HTTP to malfunction
82     (patch by Dmitri Melikyan).
83 root 1.74 - fix GET => HEAD in one case in the documentation (James Bromberger).
84 root 1.73
85 root 1.72 2.12 Tue Jun 14 07:22:54 CEST 2011
86     - fix a possible 'Can't call method "destroyed"' error (which would
87     have been reported by Carl Chambers).
88    
89 root 1.71 2.11 Tue May 10 14:33:28 CEST 2011
90     - the keepalive session cache wouldn't take port and scheme into account
91     when reusing connection - potentially causing information leaks
92     (reported by Nick Kostirya).
93     - bump AnyEvent dependency version (reported by Richard Harris).
94    
95 root 1.69 2.1 Thu Feb 24 13:11:51 CET 2011
96     - the keepalive and persistent parameters were actually named
97     differently in the code - they now work as documented.
98     - fix a bug where callbacks would sometimes never be called when
99 root 1.70 the request timeout is near or below the persistent connection
100 root 1.69 timeout (testcase by Cindy Wang).
101     - destroying the guard would have no effect when a request was
102     recursing or being retired.
103    
104 root 1.68 2.04 Sat Feb 19 07:45:24 CET 2011
105     - "proxy => undef" now overrides any global proxy when specified.
106 root 1.66 - require scheme in urls, also use a stricter match to match urls,
107     leading or trailing garbage is no longer tolerated.
108 root 1.68 - EXPERIMENTAL: allow '=' in cookie values.
109 root 1.66
110 root 1.65 2.03 Tue Jan 18 18:49:35 CET 2011
111     - dummy reupload, file gone from cpan somehow.
112    
113 root 1.64 2.02 Wed Jan 12 04:29:37 CET 2011
114     - do not lowercase cookie names, only parameter names.
115    
116 root 1.63 2.01 Tue Jan 11 07:38:15 CET 2011
117 root 1.62 - add missing dependency on common::sense.
118 root 1.63 - add a resume download example.
119 root 1.62
120 root 1.59 2.0 Tue Jan 4 09:16:56 CET 2011
121 root 1.48 - hopefully fully upgraded to HTTP/1.1.
122 root 1.59 - support HTTP/1.1 persistent and HTTP/1.0 keep-alive connections.
123     - drop https-proxy-connection support. seems unused and ill-specified.
124 root 1.60 - use more differentiated 59x status codes.
125     - properly use url (not proxy) hostname to verify server certificate.
126 root 1.48 - much improved cookie implementation:
127 root 1.53 - properly implement cookie expiry (for new cookies).
128     - new function to expire cookies and sessions: cookie_jar_expire.
129 root 1.48 - add special exception to parse broken expires= keys in
130     set-cookie headers.
131 root 1.49 - do not quote cookie values when not strictly necessary, to
132     improve compatibility with broken servers.
133 root 1.50 - accept and send lots of invalid cookie values exactly as
134     they were received - this should not impact valid values.
135 root 1.48 - lowercase cookie parameter names for improved compatibility.
136 root 1.60 - support the max-age cookie parameter, overrides expires.
137 root 1.53 - support cookie dates (and a few others) in parse_date.
138 root 1.60 - properly support value-less parameters (e.g. secure, httponly).
139 root 1.57 - do not send Host: header in a proxy CONNECT request.
140     - use common::sense.
141     - lowercase hostnames and schemes.
142     - ignore leading zeroes in http version.
143     - handle spaces in content-length headers more gracefully.
144 root 1.47
145 root 1.46 1.5 Fri Dec 31 04:47:08 CET 2010
146 root 1.45 - bugfix: after headers were received, if any error occured the wrong
147     (server-sent) Status and Reason fields would be passed to the callback.
148     - when an error occurs during transfer, preserve status/reason.
149 root 1.41 - add socks4a connect example.
150 root 1.40 - new "tcp_connect" parameter.
151 root 1.42 - new format_date and parse_date functions.
152 root 1.45 - diagnose unexpected eof as such when the length is known.
153     - add 205 to the responses without body.
154 root 1.37
155 root 1.39 1.46 Mon Sep 6 08:29:34 CEST 2010
156 root 1.38 - some (broken) servers differentiate between empty search parts
157     and nonexistant search parts, work around this (problem
158     analyzed by Sergey Zasenko).
159     - possibly increase robustness by always setting an on_error
160 root 1.39 callback on the AnyEvent::Handle object (especially in case
161     of user errors, such as nehative timeouts).
162     - we now always follow 301/302/303 redirects and mutate POST to GET.
163     - we now always follow 307 redirects, even for POST.
164     - header-less responses are not parsed correctly (at a negative
165     speed penatly :).
166 root 1.38
167 root 1.37 1.45 Wed Jun 16 21:15:26 CEST 2010
168 root 1.38 - fix a bug where the handle would go away directly after a successful
169 root 1.37 connect (analyzed and patch by Maxim Dounin).
170     - due to popular demand, introduce the Redirect pseudo response header.
171     - document URL pseudo-header better.
172     - explain how to implement DNS caching.
173 root 1.30
174 root 1.35 1.44 Sat Dec 5 16:36:20 CET 2009
175     - do not generate content-length on get requests (if the body is empty),
176     as there are even more broken servers out there.
177 root 1.34 - allow set_proxy to clear the proxy again.
178     - set_proxy will now croak on invalid urls.
179 root 1.35 - support overriding the Host-header (requested by Tatsuhiko Miyagawa).
180 root 1.34
181 root 1.33 1.43 Fri Aug 14 17:02:02 CEST 2009
182     - provide on_prepare callback on common request.
183    
184 root 1.31 1.42 Wed Aug 5 18:43:01 CEST 2009
185 root 1.61 - allow suppression of auto-supplied header fields by specifying undef
186 root 1.30 (requested by Mr Guest).
187     - allow proxy scheme to be missing, as documented
188     (reported by Mr Guest).
189     - do not follow redirects if we do not have a location header
190     (requested by Mr Guest).
191    
192 root 1.29 1.41 Sat Jul 25 03:27:05 CEST 2009
193     - correctly parse completely headerless responses (e.g. by gatling).
194     (analysed by Robin Redeker).
195    
196 root 1.28 1.4 Tue Jul 7 02:14:53 CEST 2009
197 root 1.25 - http_request would not instantly clear the connection slot on
198     tcp_connect failures, potentially leading to deadlocks.
199 root 1.28 - fix a bug where a connection error is wrongly reported
200     as EINPROGRESS.
201 root 1.26 - new parameters: on_header, on_body, want_body_handle.
202     - redirects will be followed when recurse is enabled whether or not
203     the body dowload was successful or not.
204 root 1.27 - include :port in Host header when given in the url (many sites break
205     when it's always there, and many break if it's missing...).
206 root 1.26 - pass the empty string, not undef, when there is no body but
207     no error occured.
208     - allow passing of tls_ctx, predefine two https security profiles.
209 root 1.25 - ucfirst all error messages generated internally.
210     - include "U" token in User-Agent.
211 root 1.27 - document $AnyEvent::HTTP::MAX_PER_HOST.
212     - allow empty field names in response headers (microsoft hits. microsoft
213     hits. microsoft hits. you die).
214 root 1.25
215 root 1.24 1.12 Thu Jun 11 14:45:18 CEST 2009
216 root 1.23 - $scheme wasn't optional in the proxy specification (reported by
217     Felix Antonius Wilhelm Ostmann).
218    
219 root 1.22 1.11 Fri Nov 21 09:18:11 CET 2008
220     - work around a perl core bug not properly refcounting function arguments,
221     causing "200 OK" with random body results (reported by Дмитрий Шалашов).
222    
223 root 1.21 1.1 Thu Oct 30 04:46:27 CET 2008
224 root 1.18 - work around different behaviour of AnyEvent::Handle in TLS mode.
225 root 1.17 - cleanup cookie implementation, many examples and comments were
226     provided by Дмитрий Шалашов.
227     - document the return values of http_* functions better.
228 root 1.19 - separate multiple header values by "," not "\x00" (this does not
229     break correctly written users of the old API).
230     - improve Set-Cookie: parsing.
231     - add experimental https-over-http-proxy support.
232     - downgrade https-over-https proxy to https-over-http.
233     - ignore spurious CR characters in headers, they show up
234     in the weirdest of places.
235     - ucfirst the request headers, for a slightly less weird look.
236 root 1.20 - work around (some) memleaks in perl regarding qr.
237 root 1.17
238 root 1.16 1.05 Mon Sep 29 15:49:58 CEST 2008
239     - fix a regex when parsing cookie domains
240     (patch by Дмитрий Шалашов).
241    
242 root 1.15 1.04 Thu Jul 24 08:00:46 CEST 2008
243 root 1.14 - parse reason-less http status responses.
244     - parse more forms of broken location headers.
245    
246 root 1.13 1.03 Thu Jul 3 03:47:58 CEST 2008
247 root 1.10 - fix http_post, which was totally broken (patch by Pedro Melo).
248 root 1.13 - do not recurse on POST requests, as per HTTP/1.[01] (this might
249     change as the recommendation isn't followed by anybody else).
250     - implement preliminary support for 303/307 redirects.
251 root 1.10
252 root 1.9 1.02 Thu Jun 12 13:50:08 CEST 2008
253     - make the request URL available in the callback of http_request.
254 root 1.7 - export http_post, http_head.
255    
256 root 1.6 1.01 Fri Jun 6 14:56:37 CEST 2008
257 elmex 1.5 - fixed prototypes for http_* functions
258    
259 root 1.4 1.0 Thu Jun 5 20:41:43 CEST 2008
260 root 1.3 - original version, an AnyEvent::AIO clone.