IO::Socket::INET patch
andrew deryabin [Sat, 21 Apr 2001 17:46:52 +0000 (21:46 +0400)]
Message-ID: <20010421174652.B1426@technarchy>

p4raw-id: //depot/perl@9779

ext/IO/lib/IO/Socket/INET.pm

index d2cc488..56dd7a2 100644 (file)
@@ -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) {