In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/2a59724c16c204887061581e901136a397ef2329?hp=fd74a741eea953100482ff8901bef5b8759d2e59>

- Log -----------------------------------------------------------------
commit 2a59724c16c204887061581e901136a397ef2329
Author: Paul "LeoNerd" Evans <leon...@leonerd.org.uk>
Date:   Tue Jan 4 17:04:47 2011 +0000

    Support emulation of AI_NUMERICSERV even though it's not strictly RFC 2553, 
because most OSes support it anyway, and it's easy to do
-----------------------------------------------------------------------

Summary of changes:
 ext/Socket/Socket.pm |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm
index 6e0f95b..a34fa77 100644
--- a/ext/Socket/Socket.pm
+++ b/ext/Socket/Socket.pm
@@ -596,6 +596,9 @@ if( !defined &getaddrinfo ) {
        AI_PASSIVE     => 1,
        AI_CANONNAME   => 2,
        AI_NUMERICHOST => 4,
+       # RFC 2553 doesn't define this but Linux does - lets be nice and
+       # provide it since we can
+       AI_NUMERICSERV => 1024,
 
        EAI_BADFLAGS   => -1,
        EAI_NONAME     => -2,
@@ -663,6 +666,7 @@ sub fake_getaddrinfo
    my $flag_passive     = $flags & AI_PASSIVE();     $flags &= ~AI_PASSIVE();
    my $flag_canonname   = $flags & AI_CANONNAME();   $flags &= ~AI_CANONNAME();
    my $flag_numerichost = $flags & AI_NUMERICHOST(); $flags &= 
~AI_NUMERICHOST();
+   my $flag_numericserv = $flags & AI_NUMERICSERV(); $flags &= 
~AI_NUMERICSERV();
 
    $flags == 0 or return fake_makeerr( EAI_BADFLAGS() );
 
@@ -689,6 +693,7 @@ sub fake_getaddrinfo
    }
 
    if( $service ne "" and $service !~ m/^\d+$/ ) {
+      return fake_makeerr( EAI_NONAME() ) if( $flag_numericserv );
       getservbyname( $service, $protname ) or return fake_makeerr( 
EAI_SERVICE() );
    }
 

--
Perl5 Master Repository

Reply via email to