Revision history for Socket 2.027 2018-01-12 16:58:47 [BUGFIXES] * Reimplement croak_sv (securely) for older perls (RT124063) 2.026 2018-01-11 23:15:28 [CHANGES] * Add TCP_USER_TIMEOUT (RT123253) [BUGFIXES] * Fix printf format specifier for STRLEN/sizeof (RT124044) * Recognise %Config key for HAS_GAI_STRERROR (RT124044) * Remove unused and insecure implementation of croak_sv (RT122830) 2.025 2018-01-09 15:12:51 [CHANGES] * Add IPPROTO_ICMPV6 [BUGFIXES] * Fix for C++11 compilers - require a space either side of string-pasting macros (thanks Karl Williamson) * Fix for machines lacking HAS_SOCKADDR_IN6 (RT116913) (thanks ilmari) * Print to STDERR on test failures (RT123436) (thanks ilmari) 2.024 2016/08/11 13:49:48 [BUGFIXES] * Restore back-compat to pre-2.011 behaviour on undefined port numbers to pack_sockaddr_in(6?) - silently accept undef as zero (RT116699) * Warn if pack_sockaddr_un is truncating an overly long path (mitigates but does not resolve RT116819) 2.023 2016/08/02 14:50:50 [CHANGES] * Add more socket(7), ip(7) and ipv6(7) socket options from Linux [BUGFIXES] * Fix skip count for abstract AF_UNIX path tests when not running on Linux 2.022 2016/08/01 16:02:48 [CHANGES] * Throw exceptions if pack/unpack sockaddr functions are passed undefined arguments (RT116624) [BUGFIXES] * Fix coverty complaint (RT111707) 2.021 2015/11/18 17:09:13 [CHANGES] * Add constants for TCP fastopen (RT105155) [BUGFIXES] * Respect HAS_GETHOSTBYNAME before calling gethostbyname() (RT105947) * Fixes for inet_pton() fallback on Win32 (RT107058) * Fix for INET_ADDRSTRLEN on AmigaOS (really!) (RT106797) * Provide gai_strerror() fallback on platforms that lack one (RT76091) 2.020 2015/06/24 14:45:25 [CHANGES] * Provide more IPPROTO constants - IGMP, GRE, ESP, AH, SCTP [BUGFIXES] * Provide an SvPVx_nolen wrapper for older perls (<5.8.8) that lack it (RT104120) 2.019 2015/04/29 17:05:33 [BUGFIXES] * Provide emulations of inet_ntop/inet_pton on MSWin32 by using WSAStringToAddress/WSAAddressToString 2.018 2015/02/12 13:42:41 [BUGFIXES] * Fix for "addr is not a string" test to use SvPOKp() before 5.18 2.017 2015/02/10 12:05:14 [CHANGES] * Added some more SO_* constants defined on Linux (thanks Ronald van Dorp) [BUGFIXES] * Remember to SvGETMAGIC in getnameinfo() (RT79557) * Quiet some compiler warnings (RT101495, RT100736) * Fix "Attempt to free unreferenced scalar" warnings (RT78626, et.al.) 2.016 2014/10/08 21:53:10 [BUGFIXES] * Wrap configure tests in a {} block in case of C99-deficient compilers (RT99363) * #include so that NULL definitely exists (RT98248) * Need to pass NI_NUMERICSERV during unit tests for some OSes not to error (VMS) (RT98217) 2.015 2014/08/15 23:27:07 [BUGFIXES] * Test multiple possibnle portnum->name lookups in case /etc/services lacks one (RT96874) * Stronger kill in unit-test for cygwin (RT97773) * Don't try to assert the result of getnameinfo() to match gethostbyaddr() or getservbyport() (RT77248) * Ensure that 'socktype' hint is always passed to getaddrinfo during unit-testing (RT96274) * Fix regexp borrowed from Regexp::Common::net (RT96274) 2.014 2014/06/01 00:09:13 [BUGFIXES] * Make sure to (UV)-cast arguments sprintf'ed with UVf * Use STRUCT_OFFSET() instead of plain C99 offsetof() (RT96036) * Fix the regexp used to filter for numeric IP addresses in fake_getaddrinfo() (RT95758) * Protect against getprotobyname() not being available (RT90217) 2.013 2013/10/28 00:49:43 [BUGFIXES] * Unit-test bugfixes for VMS (RT89766): + Need to pass protocol => IPPROTO_TCP to avoid SCTP as well + Perform AI_NUMERICHOST test against non-"localhost" + May have to set NI_NUMERICSERV flag if it fails without (thanks Craig A. Berry) 2.012 2013/09/03 13:20:09 [CHANGES] * is not needed on WinCE (RT87389) * "#undef interface" to avoid issues from Windows' (RT87389) 2013/07/28 2.011 CHANGES: * Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr structures due to embedded sun_len (RT86613) (thanks Maxime Soulé; MAXS) 2013/06/24 2.010 CHANGES: * Wrap some IPTOS_* constants, which may come from * Probe for and optionally include * Defeat C compilers' attempts to optimise away configure-time probes for functions that are never called 2013/01/18 2.009 CHANGES: * Fix building in core by skipping check_for() as it doesn't work there (RT82760) 2012/12/27 2.008 CHANGES: * Fix uninitialised memory read (RT82119) 2012/12/16 2.007 CHANGES: * Test %Config keys for definedness, not mere existence (RT79854) * Fix missing argument in sprintf in Socket.xs (from perl.git 5d6dfea82e1c4b6, RT82007) 2012/08/19 2.006 CHANGES: * Fix AF_INET6 test skip counts in t/sockaddr.t (RT79071) * Define mPUSHs() as it's lacking before 5.10.1 2012/08/16 2.005 CHANGES: * Have unpack_sockaddr_in{,6} return just the IP address in scalar context * Guard against incorrect length scalars being passed in to inet_ntop (RT78890) 2012/08/15 2.004 BUGFIXES: * Put skip() arguments the right way around in t/ip_mreq.t (RT78986) 2012/08/15 ** Do not use; see 2.004 ** 2.003 CHANGES: * Added IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP * Added constants and functions required for IP multicast source group membership * Added TCP_NOPUSH,NOOPT,CONNECTIONTIMEOUT,INIT_CWND,SACK_ENABLE (RT78626) 2012/06/06 2.002 CHANGES: * Wrap Linux's SOCK_NONBLOCK and SOCK_CLOEXEC constants * Added sockopt constants and structure handling functions for IPv4 multicast (also with thanks to Christian Walde for help on MSWin32) 2012/03/27 2.001 CHANGES: * Apply (modified) patch from ppisar@redhat.com to fix memory addressing bug with Zero() - RT76067 * Document that inet_pton() doesn't work on hostnames, only textual addresses - RT76010 * Ignore any existing-but-undefined hints hash members to getaddrinfo() 2012/03/10 2.000 CHANGES: * Apply (modified) patch from rurban to fix memory overflow bug with sockaddr_un() - RT75623 * Increase to three-digit version suffix in new major version 2012/02/21 1.99 CHANGES: * Better implementation of inet_pton() that sets correct size (RT 75074) * Added SO_DOMAIN * More robust unit tests of address-mangling functions 1.98 CHANGES: * Detect presence of sockaddr_in6 and ipv6_mreq; conditionally build pack/unpack functions on this * Back-compatibility improvements for older perls, back as far as 5.6.1 (thanks Zefram) * Fix for picky compilers or platforms on which size_t doesn't printf() correctly by %d * Suppress some harmless compile-time warnings about unused variables 1.97 CHANGES: * Rewritten Makefile.PL configure-time logic to use only core's ExtUtils::CBuilder rather than CPAN's ExtUtils::CChecker * Fix implementation of synthesized newSVpvn_flags() to also work on threaded 5.10.0 * Set INSTALLDIRS=perl on perl before 5.11; required as it's replacing a core module 1.96 CHANGES: * Fix Socket.t to use ok() instead of is() where required - RT73039 * Complete rewrite of module docs; list all the constants and functions, updated SYNOPSIS * Added convenient Exporter tag :addrinfo for all the gai/gni-related symbols * Provide static synthesized newSVpvn_flags() replacement for older Perls * Implement getnameinfo() NIx_NOHOST and NIx_NOSERV extension flags 1.95 CHANGES: * Implement the remaining AI_*, EAI_* and NI_* constants from Socket::GetAddrInfo * Declare configure-time dependency on ExtUtils::Constants 0.23 for when building out of core * Initial attempt at dual-life extraction from bleadperl