diff options
author | andrew deryabin <djsf@technarchy.ru> | 2001-04-21 21:46:52 +0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-04-22 15:16:03 +0000 |
commit | 6f36ad4ab3b6497d1280576be438eea8cce4348e (patch) | |
tree | aabacc83f5cd1ea27860fe023a8d9e90033ab329 /ext/IO | |
parent | 83c2f623ab800d4b316b958f530d3ecd95448b48 (diff) | |
download | perl-6f36ad4ab3b6497d1280576be438eea8cce4348e.tar.gz |
IO::Socket::INET patch
Message-ID: <20010421174652.B1426@technarchy>
p4raw-id: //depot/perl@9779
Diffstat (limited to 'ext/IO')
-rw-r--r-- | ext/IO/lib/IO/Socket/INET.pm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm index d2cc488dd2..56dd7a2660 100644 --- a/ext/IO/lib/IO/Socket/INET.pm +++ b/ext/IO/lib/IO/Socket/INET.pm @@ -84,7 +84,8 @@ sub _error { my $err = shift; { local($!); - $@ = join("",ref($sock),": ",@_); + my $title = ref($sock).": "; + $@ = join("", $_[0] =~ /^$title/ ? "" : $title, @_); close($sock) if(defined fileno($sock)); } @@ -189,12 +190,13 @@ sub configure { # my $timeout = ${*$sock}{'io_socket_timeout'}; # my $before = time() if $timeout; + undef $@; if ($sock->connect(pack_sockaddr_in($rport, $raddr))) { # ${*$sock}{'io_socket_timeout'} = $timeout; return $sock; } - return _error($sock, $!, "Timeout") + return _error($sock, $!, $@ || "Timeout") unless @raddr; # if ($timeout) { |