diff options
Diffstat (limited to 'ext/IO')
-rw-r--r-- | ext/IO/lib/IO/Socket.pm | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/ext/IO/lib/IO/Socket.pm b/ext/IO/lib/IO/Socket.pm index 53c2ff66a7..2981516efc 100644 --- a/ext/IO/lib/IO/Socket.pm +++ b/ext/IO/lib/IO/Socket.pm @@ -115,18 +115,13 @@ sub connect { $err = $! || (exists &Errno::ETIMEDOUT ? &Errno::ETIMEDOUT : 1); $@ = "connect: timeout"; } - elsif(!connect($sock,$addr)) { - if ($!{EISCONN}) { - # Some systems (e.g. Digital UNIX/Tru64) fail to - # re-connect() to an already open socket and set - # errno to EISCONN (Socket is already connected) - # for such an attempt. - $err = 0; - } else { - # But in other cases, there is no redemption. - $err = $!; - $@ = "connect: $!"; - } + elsif(!connect($sock,$addr) && not $!{EISCONN}) { + # Some systems (e.g. Digital UNIX/Tru64) fail to + # re-connect() to an already open socket and set + # errno to EISCONN (Socket is already connected) + # for such an attempt. + $err = $!; + $@ = "connect: $!"; } } else { |