Revision history for Socket
2.037 2023-06-06
[CHANGES]
* Convert hard tabs to spaces in source files
* Add `use VERSION` everywhere
* Fix indentation for consistency
[BUGFIXES]
* Fix compiler warnings on MSWin32 (RT148275)
2.036 2022-08-19
[BUGFIXES]
* Avoid putting macros inside arguments to other macros, as it annoys
strict C compilers (Perl #20119)
2.035 2022-07-01
[CHANGES]
* Support SO_INCOMING_CPU and SO_INCOMING_NAPI_ID
2.034 2022-06-27
[BUGFIXES]
* Workaround for inet_ntop/inet_pton being defined by recent releases
of mingw-w64 (RT142390)
2.033 2022-04-29
[CHANGES]
* Apply patch from core perl for z/OS support (RT142470)
2.032 2021-06-03
[CHANGES]
* Attempt to support NetBSD's LOCAL_* constants (RT127989)
* Use G_LIST instead of G_ARRAY
[BUGFIXES]
* Support short AF_UNIX addresses on Cygwin (RT135262)
* Make sure to use SvPVbyte() and not plain SvPV() (RT134421)
2.031 2021-01-05
[CHANGES]
* Warn about truncation of out-of-range port numbers in
pack_sockaddr_in*
[BUGFIXES]
* Avoid size warnings in leftshift operator (RT129217)
* Don't wrap the now-deprecated addrinfo IDN constants
ALLOW_UNASSIGNED and USE_STD3_ASCII_RULES (RT129660)
* Skip the socketpair AF_UNIX+SOCK_DGRAM tests if the OS claims them
to be unsupported (RT132946)
* Prefer getaddrinfo() to implement inet_aton() because the
alternative gethostbyname() has thread races (RT129189)
2.030 2020-06-07
[CHANGES]
* Prepare for a stricter perl:
+ use strict; use warnings in all unit tests (RT132846)
+ declare use v5.6.1 in all perl files
2.029 2019-02-20 19:19:12
[BUGFIXES]
* Old MinGW lacks ADDRESS_FAMILY; use USHORT instead (RT128550)
2.028 2019-02-19 23:59:30
[CHANGES]
* Add PF_LOCAL/AF_LOCAL constants (RT127089)
* Provide sockaddr_un on WIN32 (RT128550)
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 <stddef.h> 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]
* <ws2tcpip.h> is not needed on WinCE (RT87389)
* "#undef interface" to avoid issues from Windows' <ole2.h> (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 <netinet/ip.h>
* Probe for and optionally include <netinet/ip.h>
* 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