--- AnyEvent/Changes 2012/03/30 04:26:46 1.538 +++ AnyEvent/Changes 2014/08/28 15:17:57 1.592 @@ -1,33 +1,125 @@ Revision history for Perl extension AnyEvent. +03:55:22 Doku zu new: It is possible to push requests on the read and write queues, and modify properties of the stream, even + while +03:55:23 AnyEvent::Handle is connecting. +03:55:39 doku zu on_connect: It is not allowed to use the read or write queues while the handle object is connecting. + TODO: document TCP_*** constants TODO: add debug/trace logging to some modules -TODO: AnyEvent::IO -tODO: maxim souffle handle storable -TODO: document import tags aeio, also ae_ naming -TODO: t/io TODO: use the eval-with-cb-call trick also to speed up JSON? -lib/AnyEvent/DNS.pm: open my $fh, "<", $resolv_conf -lib/AnyEvent/DNS.pm: if (open my $fh, "ipconfig /all |") { -lib/AnyEvent/Log.pm: open my $fh, ">>", $path -lib/AnyEvent/Log.pm: open my $fh, ">>", $path -lib/AnyEvent/TLS.pm: or croak "$dh_file: failed to open DH parameter file: $!"; - -6.2 - - child watchers are broken in POE 1.352 and there seems to be - no way to work around it, as POE itself is inherently racy. Document this - regression and sleep a second in t/68_poe_03_child.t for the time - being. +TODO: FAQ: common pitfalls? invoke-before-return +TODO: FAQ: scope-ids? hosts file order? +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 + +TODO: Ilya Chesnokov, resoolver requests, limit. +TODO: improve confess skipping +TODO: Mike Lowell AnyEvent + libuv + - 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...). + - 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 + (reported by Fulko Hew). + - handle lone \015's properly in AE::Handle's default line read + (reported by various people). + - untaint ip addresses found in /etc/hosts (patch by José Micó). + - the memleak fix in 7.03 caused resolving via /etc/hosts to always + fail on first use (reported and testcase by Andrew Whatson). + - expose AnyEvent::Log::format_time, and allow users to redefine it. + - expose AnyEvent::Log::default_format, and allow redefinition. + - expose AnyEvent::Log::fatal_exit, to allow redefinition. + - AnyEvent::Debug shell can now run coro shell commands, if available. + - t/63* tests were wrongly in MANIFEST. + - kernel.org's finger server went MIA, switch to freebsd.org and + icculus.org. + - clarify that IO::AIO and AnyEvent::AIO are needed for AnyEvent::IO + to function asynchronously (reported by Daniel Carosone). + - hard-disable $^W in most tests, it generates too much garbage output. + - use a (hopefully) more future-proof method to emulate common::sense. + - upgrade to UTS-46:6.2.0. + - switch to INSTLIB from INSTLIBDIR, as INSTLIBDIR was wrongly + documented. should not affect anything. + +7.04 Thu Nov 15 02:23:58 CET 2012 + - debugging code left in. + +7.03 Thu Nov 15 02:16:11 CET 2012 + - AnyEvent::Socket::inet_aton did not work when dns resolution was + used to find the addresses (analyzed and patch by Maxime Soulé). + - fix a memory leak in the /etc/hosts lookup code when hosts don't + resolve and are not in hosts (analyzed by sten). + +7.02 Tue Aug 14 04:27:58 CEST 2012 + - AnyEvent::Util::run_cmd could block indefinitely (analyzed and test + program by Yorhel). + - verified that AnyEvent::Socket follows RFC5952. + - try to parse "ADDR#PORT" in addition to "ADDR PORT". + +7.01 Sun May 13 01:03:17 CEST 2012 + - fail with EPROTO in AnyEvent::Handle wqhen TLS is requested but + not available, instead of throwing an exception. + - use File::Spec to get the tmpdir in t/*, to avoid needless + failures on (most, not mine :) windows boxes. + - new handle read types: tls_detect and tls_autostart. + +7.0 Fri Apr 13 06:33:30 CEST 2012 + - child watchers are broken in POE 1.352 (also many earlier + versions) and there seems to be no way to work around it, as POE + itself is inherently racy. Document this regression and add a delay + in t/68_poe_03_child.t for the time being. - new module AnyEvent::IO, that is a frontend to either a pure-perl synchronous I/O implementation (AnyEvent::IO::Perl), or to the asynchronous I/O extension IO::AIO (AnyEvent::IO::IOAIO). - - load /etc/hosts only when dns fails has no answer. + - load /etc/hosts only when DNS has no answer. - stat /etc/hosts on every access and reload it if it changed. - load /etc/hosts via AnyEvent::IO - potentially asynchronous. + - fix a buggy croak in the dh parameter reading in AnyEvent::TLS. + - AnyEvent::Log log_to_file and log_to_path now use AnyEvent::IO. As + a side effect, they now use true appending as opposed to libc + appending, and the file might not have been opened when the function + returns. - the default logging level was not properly documented in a variety of places, this has hopefully been rectified. - updated uts46data.pl for unicode 6.1.0. - - made log messages genearted by AnyEvent submodules not + - made log messages generated by AnyEvent submodules not include the package name anymore, as it will be logged by default already. - upgrade to the trick used by common-sense 3.5 to work @@ -36,6 +128,8 @@ sentences and do no longer include the package name. - the storable read type would sometimes throw an exception instead of causing EBADMSG (analyzed by Maxime Soulé). + - work around a bug in openssl 1.0.1 which enforces a minimum rsa + keysize (reported by Paul Howarth). - documented Rocco fabricating statements about AnyEvent and me. 6.14 Tue Jan 31 20:00:24 CET 2012