Revision history for Socket-GetAddrInfo 0.22 CHANGES: * Move most exports into @EXPORT_OK * Provide exception-throwing version of API in Socket::GetAddrInfo::Strict * Wrap lots more flag constants + AI_IDN, AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG + NI_IDN, NI_NOFQDN + EAI_SYSTEM, EAI_BADHINTS, EAI_PROTOCOL * Implement NIx_NOHOST and NIx_NOSERV; flags to getnameinfo to request only one of host or service name * No longer supports API import tags * Docs improvements - added some code examples 0.21 BUGFIXES: * Exporter 5.57 is required - this has shipped with perl since 5.8.3, but now explicitly declared for 5.6.2 * getservbyport() needs a protocol name on 5.6.2 0.20 CHANGES: * Added bin/getaddrinfo and bin/getnameinfo script (replaces previous examples/gai.pl) * Split Socket6api into its own module * Emulate AI_NUMERICSERV in PP emulation since most OSes in practice support it, even though RFC 2553 doesn't define it * Provide Exporter tags for named constants * Don't even attempt to build XS code if no C compiler is available * Try to use core's Socket::getaddrinfo if it exists; as it does on Socket 1.93 (perl 5.13.9). * Avoid Test::Exception and Test::Warn as they're non-core and pull in Sub::UpLevel * Use ExtUtils::CChecker 0.06's ability to write a config.h rather than using C commandline -DFOO that might not be portable * Moved legacy resolver emulation code into its own PP.pm for code neatness BUGFIXES: * Bugfix for non-C99 compilers - avoid C99-style struct initialiser * Bugfix for threaded perls - aTHX/pTHX in err_to_SV() * More MSWin32 fixes [rurban] * Use ppport.h 0.19 BUGFIXES: * Can't store &PL_sv_undef in an HV; store newSV(0) instead * Handle magic in getaddrinfo() args [chansen] * Win32 build fixes [chansen] 0.18 BUGFIXES: * Fix plain number passing for getaddrinfo()'s service on perl versions <5.10.0 0.17 BUGFIXES: * Fix 'protocol' hint to getaddrinfo() 0.16 CHANGES: * Accept undef as absent host/service name, as well as "" BUGFIXES: * Need -lsocket on some OSes; hunt it using ExtUtils::CChecker 0.15 CHANGES: * Use XSLoader instead of DynaLoader * import Exporter::import instead of @ISAing it * Use ExtUtils::CChecker for build checking 0.14 BUGFIXES: * Don't leak memory on getnameinfo() failures * Avoid possible sockaddr alignment errors by allocating/copying a new buffer (thanks to Zefram) 0.13 CHANGES: * Don't warn if only importing symbolic constants; test this * Added Test::Pod testing * Docs neatening in L<> links 0.12 CHANGES: * Added 'use warnings' * Added 'gai.pl' example 0.11 CHANGES: * Pass "socktype => SOCK_STREAM" hint in example * Use "return 1" rather than "exit(1)" in C code to avoid needing <unistd.h>; may improve builds on non-UNIX platforms BUGFIXES: * Declare ExtUtils::CBuilder as a configure_requires dependency, and fail gracefully if it still isn't installed when Build.PL runs 0.10 BUGFIXES: * Fixed a bug in getnameinfo() when handling IPv6 addresses, where a buffer overrun causes at least a failure from libc, but has the potential to cause a stack corruption or segfault. 0.09 CHANGES: * Conditionally skip the tests for missing hostnames if the legacy resolver finds an address anyway. This may mitigate test FAILs on smoke test machines with wildcard DNS servers. 0.08 CHANGES: * Declare as release 0.08_7 CHANGES: * Make sure to sv_2mortal() returned SV*s in XS code BUGFIXES: * Minor changes to test scripts that should reduce cornercase FAILs, or at least help debug them if they occur 0.08_6 BUGFIXES: * Set 'sa_len' member of sockaddr structure if platform needs it 0.08_5 BUGFIXES: * Better comparison of sockaddr returns - unpack and test components to avoid errors on platforms that use sin_len, since Socket doesn't * Use XSRETURN() in XS functions to ensure stack is correct height * Better diagnostic if $err tests fail - convert number to symbolic constant 0.08_4 BUGFIXES: * Define constants in XS code wrapped in #ifdef tests, to ensure only ones that the platform defines are attempted. * Print whether PP or XS implementation are being used in the t/00use.t file 0.08_3 BUGFIXES: * Use ExtUtils::CBuilder to compile the test .c file in the Configure() stage, to make it (hopefully) more portable * Some OSes return $err==0 but no results for invalid names - make sure the test script can cope. 0.08_2 BUGFIXES: * Declare variables in "PREINIT" XS section, not "INIT"; keeps non-C99 compilers happy * Skip tests that require internet connectivity unless the tester declares it possible * Declare test counts upfront in testing scripts * Renamed XS functions 'getaddrinfo' and 'getnameinfo'; no need to prefix with 'real_' * Folded Configure.pl inline into Build.PL, in case it has to make further decisions 0.08_1 CHANGES: * Complete rewrite to XS+PP emulation system. No longer uses Socket6 on account of API and error reporting issues. * Provided two styles of API at import time (:newapi and :Socket6api) to allow caller to choose between RFC2553-like or Socket6 styles 0.07 BUGFIXES: * Ensure that emulated getaddrinfo() copes with family=AF_UNSPEC (0) 0.06 BUGFIXES: * Avoid (harmless) "Constant subroutine .. redefined" warnings if 'use'd multiple times, when Socket6 is not available. 0.05 CHANGES: * Reworded DESCRIPTION section of documentation * Fixed some bugs in the SYNOPSIS example 0.04 BUGFIXES: * Declare dependency on Test::Exception * Fixed skip count in test in 01getaddrinfo-socket6.t 0.03 CHANGES: * Changed getnameinfo() to avoid needing sockaddr_family(), which avoids a version check, which means it works on perl 5.6.1 0.02 BUGFIXES: * Declare required version of Socket.pm sufficient to have sockaddr_family() 0.01 First version, released on an unsuspecting world.