Tests still don't pass but 'you actually get a "not ok" instead of "Looks like you planned 4 tests but ran 3"'. Thanks, Tod McQuillin!
Socket 2.001 (and possibly earlier) expose getaddrinfo() so we don't need Socket::GetAddrInfo anymore. Also, the author of that module suggests that it's obsolete since Socket provides it now.
avenj on irc.perl.org #poe pointed out that Socket::GetAddrInfo 0.22 changed public behavior and began throwing the following error. This change compensates for that and requires version 0.22 or later. :newapi tag is no longer supported by Socket::GetAddrInfo; just 'use' it directly
Reported by Alberto Simões on irc.perl.org and diagnosted with copious help from Chris Williams. Thanks, guys!
Modified resolve() to return a request ID. Added cancel(), which accepts a request ID and cancels it. POE::Component::Client::Keepalive requires it.
Fixed thanks to Sergei Kozunov's bug report and test case. A sidecar process was created at startup, but no idle timeout was set. These timeouts are only set when requests happen, and in an application where all addresses are already resolved, no timeout is set. So the component lingers forever.
_poe_sidecar_closed() was destroying the wrong sidecar process. Thank you, Kozunov, for the code review and bug report. Two little octets can make a huge difference.
Dylan Doxey pointed out that Socket::GetAddrInfo rejects tainted addresses. Untaint them first, per his recommendation and test case.
Larwan Burke pointed out that localhost is a bad name to resolve when testing for IPv6 availability. It tends to be in /etc/hosts, which resolves whether or not the named can.
I hate hash-based data structures for just this reason: typos are silently ignored. Many thanks to Jon Portnoy for reporting this one.
…ence. As IPv6 is adopted, more and more places will behave differently than expected. The POCO_RESOLVER_IPV environment variable gives users a way to override the legacy behavior during this potentially painful transition.
Sjors Gielen reported a runaway fork in irc.perl.org #poe. $^X is not always a path to the perl binary. Resolved by using Configure's notion of perlpath and _exe, per Sjors' recommendation and discussion of $^X in perlvar.
…agers. Applied a modified versin of a patch from Markus Jansen at Ericsson. It adds a parameter to POE::Component::Resolver so the developer can point to a custom sidecar program. That program can be bundld in PAR using special techniques. Thanks also go to Steffen Mueller and Roderich Schupp, who helped design the patch.
Chris Williams discovered tests would fail on Solaris with "service name not available for the specified socket type". It turns out they don't list "http" in /etc/services.
The presence of this module is requested on MSWin32. Resolves rt.cpan.org ticket 69172, reported by Gabor Szabo.
…ompted by Karen_m's memory issues, and recommended by gcola, Hinrik, and Apocalypse on irc.perl.org #poe. You people rock! :)
…structor parameter to override just how long that is. This is a partial response to Karen_m's report of PID and memory churn introduced by lots of forking.
…ddresses. We assume localhost can resolve.
… one way to install it.