Blame Changes

Packit 8bbd3c
Revision history for IO-Socket-IP
Packit 8bbd3c
Packit 8bbd3c
0.39    2017/03/06 16:40:30
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Handle EOPNOTSUPP in resposne of efforts to disable V6ONLY
Packit 8bbd3c
           (RT119780) (thanks XENU)
Packit 8bbd3c
Packit 8bbd3c
0.38    2016/08/02 18:33:50
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Support setting custom socket options with new 'Sockopts'
Packit 8bbd3c
           constructor parameter
Packit 8bbd3c
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Restore blocking mode after ->connect errors (RT112334)
Packit 8bbd3c
Packit 8bbd3c
0.37    2015/03/12 20:44:07
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Earlier detection/reporting of erroneous Listen + Peer* argument
Packit 8bbd3c
           combination; don't rely on resolveable hostname to do it (RT92930)
Packit 8bbd3c
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Skip t/16v6only.t on irix (RT102662)
Packit 8bbd3c
         * Remember to eval() $IO::Socket::VERSION in case it's a devel
Packit 8bbd3c
           release (RT101954)
Packit 8bbd3c
         * s/Port/LocalPort/ in unit tests (RT96064)
Packit 8bbd3c
Packit 8bbd3c
0.36    2014/01/10 20:54:58
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Always bind() on MSWin32 because Windows doesn't like it if we
Packit 8bbd3c
           listen() having not done so (RT101396)
Packit 8bbd3c
Packit 8bbd3c
0.35    2015/01/02 19:45:20
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Restore blocking mode after timeout connect immediate success
Packit 8bbd3c
           (RT100947)
Packit 8bbd3c
         * Avoid CORE:: prefixing so global override modules work (RT101174)
Packit 8bbd3c
         * Ensure that ->peer{host,port,hostname,service} never die even when
Packit 8bbd3c
           unconnected (RT98759)
Packit 8bbd3c
Packit 8bbd3c
0.34    2014/12/03 00:04:56
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Don't select() for read-readiness when waiting for non-blocking
Packit 8bbd3c
           connect() because it upsets VMS (RT100654)
Packit 8bbd3c
Packit 8bbd3c
0.33    2014/11/21 16:17:39
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Use SOL_SOCKET/SO_ERROR sockopt rather than 2nd connect() error
Packit 8bbd3c
           hoisting to detect nonblocking connect/failure when implementing
Packit 8bbd3c
           Timeout (RT98976) (thanks Arthur Axel 'fREW' Schmidt)
Packit 8bbd3c
Packit 8bbd3c
0.32    2014/09/12 10:11:27
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Implementation of Timeout for ->connect (RT92075)
Packit 8bbd3c
Packit 8bbd3c
0.31    2014/07/11 01:24:49
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * A better fix for subclassing ->connect (RT95983) because 0.30 broke
Packit 8bbd3c
           the way IO::Socket::SSL works (RT97050)
Packit 8bbd3c
Packit 8bbd3c
0.30    2014/07/03 23:28:43
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Invoke $self->connect fully-qualified in case of subclasses with
Packit 8bbd3c
           override (RT95983)
Packit 8bbd3c
         * Added extra diag() call in t/15io-socket.t (RT96914)
Packit 8bbd3c
Packit 8bbd3c
0.29    2014/02/24 16:06:29
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Workaround for OSes that disobey AI_ADDRCONFIG and yield AIs on
Packit 8bbd3c
           families the kernel will not support anyway (e.g. HPUX)
Packit 8bbd3c
         * Workaround for OSes that lack getprotobyname() (e.g. Android)
Packit 8bbd3c
Packit 8bbd3c
0.28    2014/02/10 16:17:59
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Renamed internal _configure method to _io_socket_ip__configure to
Packit 8bbd3c
           avoid clashes with modules that try to subclass IO::Socket::INET
Packit 8bbd3c
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Disable AI_ADDRCONFIG during one-sided 'v6 tests as sometimes it
Packit 8bbd3c
           would otherwise fail
Packit 8bbd3c
         * Skip the SO_BROADCAST test on OSes that fail with EACCES (RT92502)
Packit 8bbd3c
Packit 8bbd3c
0.27    2014/01/20 18:08:31
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Apply a short timeout to unit tests that probe for internet
Packit 8bbd3c
           connectivity, in case of bad firewalls, etc... (Perl RT121037)
Packit 8bbd3c
         * Defend against machines with IN6ADDR_LOOPBACK not being "::1" in
Packit 8bbd3c
           unit tests, similar to the INADDR_LOOPBACK case (RT92295)
Packit 8bbd3c
Packit 8bbd3c
0.26    2014/01/16 12:20:02
Packit 8bbd3c
        [CHANGES]
Packit 8bbd3c
         * Set $VERSION in BEGIN block before 'use base' so that
Packit 8bbd3c
           Acme::Override::INET still works
Packit 8bbd3c
         * Various minor improvements to documentation
Packit 8bbd3c
Packit 8bbd3c
0.25    2014/01/11 17:19:29
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Allow both *Host with port and *Port arguments, letting port from
Packit 8bbd3c
           Host argument take precedence (INET compat)
Packit 8bbd3c
         * Ensure that a Host/Family-less constructor still constructs a
Packit 8bbd3c
           socket, by using gai()s AI_ADDRCONFIG hint
Packit 8bbd3c
Packit 8bbd3c
0.24    2013/09/19 14:17:22
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Defend against INADDR_LOOPBACK not being 127.0.0.1 on machines with
Packit 8bbd3c
           odd networking (e.g. FreeBSD jails) during unit testing
Packit 8bbd3c
Packit 8bbd3c
0.23    2013/09/11 17:53:19
Packit 8bbd3c
        [BUGFIXES]
Packit 8bbd3c
         * Check that kernel actually supports SO_REUSEPORT before
Packit 8bbd3c
           unit-testing it (RT86177)
Packit 8bbd3c
Packit 8bbd3c
0.22    BUGFIXES:
Packit 8bbd3c
         * Always pass 'socktype' hint to getaddrinfo() in unit tests because
Packit 8bbd3c
           some OSes get upset without it
Packit 8bbd3c
         * Don't unit-test that sockaddr is updated with a local bind() on
Packit 8bbd3c
           SOCK_DGRAM sockets because some OSes don't
Packit 8bbd3c
Packit 8bbd3c
0.21    CHANGES:
Packit 8bbd3c
         * Provide a downgrade method to turn an AF_INET-domain socket into a
Packit 8bbd3c
           real IO::Socket::INET instance
Packit 8bbd3c
         * Ensure that IO::Socket->new( Domain => ... ) definitely returns a
Packit 8bbd3c
           socket in the right family
Packit 8bbd3c
Packit 8bbd3c
0.20    CHANGES:
Packit 8bbd3c
         * Skip the IPV6_V6ONLY tests on machines lacking that constant
Packit 8bbd3c
         * Avoid Socket::inet_pton() in unit tests as Strawberry lacks it
Packit 8bbd3c
         * Added ->join_addr
Packit 8bbd3c
         * Respect subclassing argument to ->accept
Packit 8bbd3c
Packit 8bbd3c
0.19    CHANGES:
Packit 8bbd3c
         * More IO::Socket::INET compatibility fixes:
Packit 8bbd3c
            + Ensure ->connected is false after ->close
Packit 8bbd3c
            + Ensure that IO::Socket::IP->new(Family => $family) still creates
Packit 8bbd3c
              an unbound, unconnected socket filehandle
Packit 8bbd3c
Packit 8bbd3c
0.18    CHANGES:
Packit 8bbd3c
         * Work around ->socktype being undef on IO::Socket versions before
Packit 8bbd3c
           1.35 by fetching ->sockopt( SO_TYPE ) (RT81549)
Packit 8bbd3c
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Fix test skip counts in t/21nonblocking-connect-internet.t (RT79393)
Packit 8bbd3c
Packit 8bbd3c
0.17    CHANGES:
Packit 8bbd3c
         * Only pass AI_ADDRCONFIG as getaddrinfo() flag if no other flags
Packit 8bbd3c
           specified, so the caller can disable it if required.
Packit 8bbd3c
        
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Don't count select() invocations during nonblocking unit test
Packit 8bbd3c
           because this is too unreliable and races with the kernel/TCP stack
Packit 8bbd3c
Packit 8bbd3c
0.16    BUGFIXES:
Packit 8bbd3c
         * Don't ->close after all connect attempts fail, because
Packit 8bbd3c
           IO::Socket::INET doesn't do that
Packit 8bbd3c
Packit 8bbd3c
0.15    BUGFIXES:
Packit 8bbd3c
         * (Hopefully) improved ->connect logic for better MSWin32 support
Packit 8bbd3c
         * Skip testing AI_NUMERICSERV on OSes that don't support it
Packit 8bbd3c
Packit 8bbd3c
0.14    BUGFIXES:
Packit 8bbd3c
         * Second attempt at fixing test skip counts
Packit 8bbd3c
Packit 8bbd3c
0.13    BUGFIXES:
Packit 8bbd3c
         * Updated test skip counts in unit tests so they match the number of
Packit 8bbd3c
           tests actually skipped
Packit 8bbd3c
Packit 8bbd3c
0.12    CHANGES:
Packit 8bbd3c
         * Ensure that all instances have a defined fileno after construction,
Packit 8bbd3c
           even in non-blocking mode (RT77726)
Packit 8bbd3c
Packit 8bbd3c
0.11    CHANGES:
Packit 8bbd3c
         * Ignore unrecognised constructor arguments rather than complaining
Packit 8bbd3c
           about their presence (RT77536)
Packit 8bbd3c
         * Call $self->connect during constructor because IO::Socket::SSL
Packit 8bbd3c
           relies on this to happen (RT77536)
Packit 8bbd3c
Packit 8bbd3c
0.10    CHANGES:
Packit 8bbd3c
         * Allow specifying other getaddrinfo flags using GetAddrInfoFlags
Packit 8bbd3c
           constructor argument (RT75783)
Packit 8bbd3c
         * Provide a convenient hostname+port string splitting utility method
Packit 8bbd3c
Packit 8bbd3c
0.09    CHANGES:
Packit 8bbd3c
         * Attempt to implement IPV6_V6ONLY sockopt wrapper - not all OSes can
Packit 8bbd3c
           disable it, so detect and skip those
Packit 8bbd3c
         * Provide ->sockaddr and ->peeraddr convenience accessors, same as
Packit 8bbd3c
           IO::Socket::INET (RT75071)
Packit 8bbd3c
         * Use new NIx_NOHOST and NIx_NOSERV flags to avoid redundant
Packit 8bbd3c
           getnameinfo() lookups when only one of host or service name is
Packit 8bbd3c
           required
Packit 8bbd3c
         * Ensure that errno gets set to EINVAL on getaddrinfo() failures
Packit 8bbd3c
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Ignore existing-but-undefined constructor arguments
Packit 8bbd3c
         * Avoid locale-specific error message testing of $!
Packit 8bbd3c
         * Updates to unit tests for cygwin
Packit 8bbd3c
Packit 8bbd3c
0.08    CHANGES:
Packit 8bbd3c
         * Depend on Socket 1.95 now a full dual-life release has been made
Packit 8bbd3c
         * Set the AI_ADDRCONFIG getaddrinfo hint
Packit 8bbd3c
         * Fix some spelling mistakes/typoes
Packit 8bbd3c
         * MSWin32 fixes:
Packit 8bbd3c
            + MSWin32 uses select() exceptfds rather than writefds to report
Packit 8bbd3c
              on nonblocking connect() failure
Packit 8bbd3c
            + MSWin32 uses EWOULDBLOCK rather than EINPROGRESS to indicate
Packit 8bbd3c
              nonblocking connect()
Packit 8bbd3c
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Ensure ->socket protocol argument is always defined
Packit 8bbd3c
         * Bugfix for (e.g.) NetBSD, which gets upset at protocol hint without
Packit 8bbd3c
           socktype hint to getaddrinfo()
Packit 8bbd3c
         * Pass 'type' rather than 'proto' to constructor in t/11sockopts.t to
Packit 8bbd3c
           avoid MSWin32 test failures
Packit 8bbd3c
         * Localise $1/$2 to placate [perl #67962]
Packit 8bbd3c
Packit 8bbd3c
0.07    CHANGES:
Packit 8bbd3c
         * Prepare for Socket::getaddrinfo() in core; prefer it to
Packit 8bbd3c
           Socket::GetAddrInfo::getaddrinfo()
Packit 8bbd3c
         * Implement Family constructor arg
Packit 8bbd3c
         * Optional registration with IO::Socket
Packit 8bbd3c
         * Documentation rewordings
Packit 8bbd3c
         * Bugfix to local socket connect tests - test using blocking rather
Packit 8bbd3c
           than nonblocking sockets to guarantee synchronous packet delivery
Packit 8bbd3c
         * Bugfix to t/04, t/05 - skip if unable to bind ::1
Packit 8bbd3c
Packit 8bbd3c
0.06    CHANGES:
Packit 8bbd3c
         * Implement nonblocking connect
Packit 8bbd3c
         * Implement LocalAddrInfo and PeerAddrInfo args
Packit 8bbd3c
         * Example of nonblocking usage, using Net::LibAsyncNS
Packit 8bbd3c
Packit 8bbd3c
0.05    CHANGES:
Packit 8bbd3c
         * Implement combined ->bind and ->connect operations
Packit 8bbd3c
         * Accept "host:service" as *Addr args, and PeerAddr as sole
Packit 8bbd3c
           constructor argument
Packit 8bbd3c
         * Accept "name(port)" as service arguments
Packit 8bbd3c
Packit 8bbd3c
0.04    CHANGES:
Packit 8bbd3c
         * Try to yield the most appropriate connect/bind/socket error
Packit 8bbd3c
         * Implement sockhost/peerhost methods to match ::INET, moved hostname
Packit 8bbd3c
           methods to sockhostname/peerhostname
Packit 8bbd3c
        
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Work around IO::Socket bug where ->accept'ed sockets do not get
Packit 8bbd3c
           ->sockdomain or ->socktype
Packit 8bbd3c
Packit 8bbd3c
0.03    CHANGES:
Packit 8bbd3c
         * Set $@ to raise error messages from constructor
Packit 8bbd3c
Packit 8bbd3c
        BUGFIXES:
Packit 8bbd3c
         * Correctly implement 'Type' constructor argument
Packit 8bbd3c
         * Test SO_BROADCAST on udp instead of tcp as some OSes forbid it
Packit 8bbd3c
Packit 8bbd3c
0.02    BUGFIXES:
Packit 8bbd3c
         * Not all OSes return true sockopts as 1; test simply for non-zero
Packit 8bbd3c
         * Gracefully skip IPv6 tests if Socket6 unavailable
Packit 8bbd3c
Packit 8bbd3c
0.01    First version, released on an unsuspecting world.
Packit 8bbd3c