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