Update Socket to CPAN version 2.001
authorTony Cook <tony@develop-help.com>
Tue, 15 May 2012 09:22:30 +0000 (19:22 +1000)
committerRicardo Signes <rjbs@cpan.org>
Tue, 15 May 2012 21:35:13 +0000 (17:35 -0400)
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()

Done for the critical RT76067 fix.

Porting/Maintainers.pl
cpan/Socket/Socket.pm
cpan/Socket/Socket.xs
pod/perldelta.pod

index bef1e74..1b1810e 100755 (executable)
@@ -1621,7 +1621,7 @@ use File::Glob qw(:case);
 
     'Socket' => {
         'MAINTAINER'   => 'pevans',
-        'DISTRIBUTION' => 'PEVANS/Socket-2.000.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Socket-2.001.tar.gz',
         'FILES'        => q[cpan/Socket],
         'UPSTREAM'     => 'cpan',
     },
index 3b8ea73..e12d851 100644 (file)
@@ -3,7 +3,7 @@ package Socket;
 use strict;
 { use 5.006001; }
 
-our $VERSION = '2.000';
+our $VERSION = '2.001';
 
 =head1 NAME
 
@@ -286,7 +286,7 @@ code should use getnameinfo() or inet_ntop() instead for IPv6 support.
 =head2 $address = inet_pton $family, $string
 
 Takes an address family (such as C<AF_INET> or C<AF_INET6>) and a string
-giving the name of a host, or a textual representation of an IP address and
+containing a textual representation of an address in that family and
 translates that to an packed binary address structure.
 
 See also getaddrinfo() for a more powerful and flexible function to look up
index 3999c4b..5ddd0e9 100644 (file)
@@ -444,13 +444,13 @@ static void xs_getaddrinfo(pTHX_ CV *cv)
 
                hintshash = (HV*)SvRV(hints);
 
-               if((valp = hv_fetch(hintshash, "flags", 5, 0)) != NULL)
+               if((valp = hv_fetch(hintshash, "flags", 5, 0)) != NULL && SvOK(*valp))
                        hints_s.ai_flags = SvIV(*valp);
-               if((valp = hv_fetch(hintshash, "family", 6, 0)) != NULL)
+               if((valp = hv_fetch(hintshash, "family", 6, 0)) != NULL && SvOK(*valp))
                        hints_s.ai_family = SvIV(*valp);
-               if((valp = hv_fetch(hintshash, "socktype", 8, 0)) != NULL)
+               if((valp = hv_fetch(hintshash, "socktype", 8, 0)) != NULL && SvOK(*valp))
                        hints_s.ai_socktype = SvIV(*valp);
-               if((valp = hv_fetch(hintshash, "protocol", 8, 0)) != NULL)
+               if((valp = hv_fetch(hintshash, "protocol", 8, 0)) != NULL && SvOK(*valp))
                        hints_s.ai_protocol = SvIV(*valp);
        }
 
@@ -712,7 +712,7 @@ unpack_sockaddr_un(sun_sv)
           getpeername and getsockname is not equal to sizeof(addr). */
        if (sockaddrlen < sizeof(addr)) {
          Copy(sun_ad, &addr, sockaddrlen, char);
-         Zero(&addr+sockaddrlen, sizeof(addr)-sockaddrlen, char);
+         Zero(((char*)&addr) + sockaddrlen, sizeof(addr) - sockaddrlen, char);
        } else {
          Copy(sun_ad, &addr, sizeof(addr), char);
        }
index c809916..f869115 100644 (file)
@@ -1403,7 +1403,7 @@ instead of 0. On most platforms C<TCSANOW> is defined to be 0, but on some
 
 =item *
 
-L<Socket> has been upgraded from version 1.94 to 2.000.
+L<Socket> has been upgraded from version 1.94 to 2.001.
 
 It has new functions and constants for handling IPv6 sockets: