diff options
author | 2000-04-30 04:43:18 +0000 | |
---|---|---|
committer | 2000-04-30 04:43:18 +0000 | |
commit | 95f379bd23dd285bc164c46e34392feab9b6acac (patch) | |
tree | cdbcc1d9423ef4ed2266006e9976fd8a4d207188 | |
parent | Change 5948 by gsar@auger on 2000/04/25 18:21:57 (diff) | |
download | wireguard-openbsd-95f379bd23dd285bc164c46e34392feab9b6acac.tar.xz wireguard-openbsd-95f379bd23dd285bc164c46e34392feab9b6acac.zip |
Change 5982 by gsar@auger on 2000/04/28 04:48:25
avoid error in IO::Socket::INET when given an unknown service name
with a port number (from Brian Raven <brianr@ssprdmh01.liffe.com>)
-rw-r--r-- | gnu/usr.bin/perl/ext/IO/lib/IO/Socket/INET.pm | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gnu/usr.bin/perl/ext/IO/lib/IO/Socket/INET.pm b/gnu/usr.bin/perl/ext/IO/lib/IO/Socket/INET.pm index 27a3d4d847e..c922bf35c95 100644 --- a/gnu/usr.bin/perl/ext/IO/lib/IO/Socket/INET.pm +++ b/gnu/usr.bin/perl/ext/IO/lib/IO/Socket/INET.pm @@ -34,6 +34,7 @@ sub new { sub _sock_info { my($addr,$port,$proto) = @_; + my $origport = $port; my @proto = (); my @serv = (); @@ -59,14 +60,14 @@ sub _sock_info { my $defport = $1 || undef; my $pnum = ($port =~ m,^(\d+)$,)[0]; - if ($port =~ m,\D,) { - unless (@serv = getservbyname($port, $proto[0] || "")) { - $@ = "Bad service '$port'"; - return; - } - } + @serv = getservbyname($port, $proto[0] || "") + if ($port =~ m,\D,); $port = $pnum || $serv[2] || $defport || undef; + unless (defined $port) { + $@ = "Bad service '$origport'"; + return; + } $proto = (getprotobyname($serv[3]))[2] || undef if @serv && !$proto; |