--- AnyEvent/Changes 2013/08/28 20:48:26 1.578 +++ AnyEvent/Changes 2019/02/26 01:35:48 1.630 @@ -8,11 +8,136 @@ TODO: AnyEvent::Handle with AnyEvent::IO? TODO: invalid. and localhost. specialcasing inside AEDNS and not AESocket (rfc6761) TODO: maybe implement env variable to give hosts precedence - - - calling AnyEvent->now_update with AnyEvent::Impl::Perl causes an +TODO: more formats for parse_ipv6 (single ipv6 address without port, ...p80, ...#80) +TODO: inet_aton maybe pack C4? no, add a comment why not +TODO: socket prepare callbacks, can they easily signal failure as well? + +TODO: stuff dns packet into decoded structure +TODO: allow client programs to extend the dns encoder/decoder list +TODO: Олег Г test nameserver + + - INCOMPATIBLE CHANGE: tls_detect documentation gave separate major and + minor versions, while code passed only a single value. This version + follows the documentation and now passes separate major and minor values. + - work around Net::SSLeay not having been ported to openssl 1.1, but many + distributions compiling it against openssl 1.1, which unfortunately + succeeds and results in a very brfoken module. + - AnyEvent::Socket::parse_ipv6 would NOT, as advertised, accept ipv4 + addresses. It now does and converts them to ipv4 mapped addresses. + - support CAA records, based on patch by Steve Atkins. + - add freenom and cloudflare nameservers as dns fallback. + - AnyEvent::Strict would not properly ward against io watchers + on files when the handle passed was a file descriptor. + +7.14 Sat Jun 24 01:44:19 CEST 2017 + - fix a crash bug in AnyEvent::Handle with openssl 1.1.0 (patched + by Paul Howarth and apparently tracked down by Mike McCauley). + - AnyEvent::Handle->keepalive was documented (and defined) twice + (found by Matt Merhar). + - AnyEvent::Socket::tcp_bind/tcp_server would immediately unlink a unix + listening socket unless a guard is used. Change this so that no + cleanup will be performed unless a guard is used and document this more + clearly. + - make tcp_bind/tcp_server error messages more regular. + - work around latest perl upstream breakage - this time, perl5porters were + apparently bullied by a bogus CVE (CVE-2016-1238), and since distros + stupidly apply anything that has "security fix" stamped on it, it's likely + going to be a problem in practise (and working around it is trivial on + windows and unix). + - add TCP_FASTOPEN/MSG_FASTOPEN and MSG_NOSIGNAL/MSG_MORE/MSG_DONTWAIT + to constants. + - update warnings to common::sense 3.74 standards. + +7.13 Sat Sep 17 04:31:49 CEST 2016 + - Only call tlsext_host_name for non-empty common names (reported + by Maxime Soulé). + - log a (single) notice message if SNI is not supported. + - upgrade to UTS-46:9.0.0 draft and switch to non-transitional + behaviour, beating thunderbird, ie, edge, chrome and safari to it :) + (see also https://bugzilla.mozilla.org/show_bug.cgi?id=1218179) + - turns out the UTS-46 IDNA testcase failures were indeed bugs in the + testcases and the specification and not in the code - the post-9.0.0 + unicode files have all known problems fixed, so finally the AnyEvent + IDNA implementation can pass the full IDNA testsuite - without needing + a single fix :) + - guarantee (and document) that condvar callbacks will be removed + on invocation - important to avoid circular references. + +7.12 Wed Jan 27 19:12:26 CET 2016 + - use common name as hostname for tls connects, if Net::SSLeay + supports SNI. + - fix documentation of tls_autostart read type in AnyEvent::Handle, + analyzed by Felix Ostmann. + +7.11 Thu Jul 16 14:36:00 CEST 2015 + - AnyEvent::Socket::parse_ipv6 could accept malformed ipv6 + addresses (extra "::" at end and similar cases). + - add a more explicit warning to AnyEvent::Handle that it doesn't + work on files, people keep getting confused. + - new function AnyEvent::Socket::tcp_bind. + - new functions AnyEvent::fh_block and AnyEvent::fh_unblock. + - aligned ipv6 address formatting with RFC 5952 (by not shortening + a single :0: to ::). + - added stability canary support. + +7.09 Sat May 2 16:38:53 CEST 2015 + - AnyEvent::Debug called an internal function (AnyEvent::Log::ft) + that was renamed to AnyEvent::Log:format_time. uinder its old name + (analyzed by Michael Stovenour). + - update AnyEvent::DNS fallback resolver addresses: + seems google effectively killed most other free dns resolvers, + so remove them, but add cable and wireless (ecrc) since it was + stable for 20 years or so, official or not, and there should be + an alternative to google. + - perl5porters broke windows error codes in 5.20, and mapped + WSAEWOULDBLOCK on the (different) EWOULDBLOCK error code, and + WSAEINPROGRESS into the incompatible ERINPROGRESS code, probably + because they were so cool. They probably broke other error codes + for no reason, too, but I didn't care for checking, it's too + depressing. This version only works around the WSAEWOULDBLOCK + issue, because I don't have a nice way to work around the + WSAEINPROGRESS bug. + +7.08 Wed Dec 10 05:27:17 CET 2014 + - work around a newly introduced bug in Socket 2.011 (an + errornous sun_length check) (analyzed by Maxime Soulé). + - AnyEvent::TLS didn't load (but refer to) AnyEvent::Socket + (analyzed by Ben Magistro). + - AnyEvent::Strict will now confess, not croak. This is in line with + it being a development/debugging tool. + - work around a number of libglib bugs (debug builds of libglib enforce + certain undocumented behaviour patterns such as not being able to + remove a child watch source after it has fired, which we will try + to emulate to avoid "criticals". what where they thinking...). + - mention json security issues in AnyEvent::Handle, now that Douglas + Crockford has foolishly and incompatibly changed JSON. + - changed default dns resolver "max_outstanding" value from 1 to 10, + the latter beinfg the intended value all along + (reported by Ilya Chesnokov). + - added new "AnyEvent::Impl::UV" interface module to the UV event lib + (written by Mike Lowell). + +7.07 Tue Dec 17 17:45:02 CET 2013 + - the documentation for custom tls verify schemes was wrong. make it agree + with the code (reported by Maxime Soulé). + - added cbor read and write types to AnyEvent::Handle (using CBOR::XS). + - work around an API change in openssl that could cause wrong tls connection + aborts, likely on windows only (analyzed by sten). + - calling AnyEvent->now_update with AnyEvent::Impl::Perl caused an endless loop (reported by Dietrich Rebmann). + - add tlsv1_1 and tlsv1_2 protocols to AnyEvent::TLS + (patch by Maxime Soulé). + - document AnyEvent::Impl::IOAsync::set_loop and + $AnyEvent::Impl::IOAsync::LOOP. Though only documented now, this + functionality has _always_ been available. - force a toplevel domain name in t/81_hosts.t (analyzed by David Jack Wange Olrik). + - document that AnyEvent::Log uses AnyEvent::IO. + - warn about AnyEvent::Filesys::Notify performance. + - praise the joys of AnyEvent::Fork::*. + - time for an =encoding directive. + - do no longer use JSON to create a default json coder, use + JSON::XS or JSON::PP directly. 7.05 Wed Aug 21 10:38:08 CEST 2013 - uts46data.pl couldn't be found due to wrong naming of the file @@ -613,7 +738,7 @@ - add an additional error message parameter to AnyEvent::Handle's on_error callback (for TLS, $! is still available). - add AnyEvent::Handle on_starttls/on_stoptls callbacks. - - make AnyEvent::Handle more robust against early conenction + - make AnyEvent::Handle more robust against early connection failures (during new), and return C in that case from the constructor. - AnyEvent::Handle will now try to load only JSON::XS first,