1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
=== modified file 'paramiko/transport.py'
--- a/paramiko/transport.py 2009-12-16 08:15:36 +0000
+++ ib/paramiko/transport.py 2011-01-14 06:01:07 +0000
@@ -285,15 +285,21 @@
if type(sock) is tuple:
# connect to the given (host, port)
hostname, port = sock
+ reason = 'No suitable address family'
for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
if socktype == socket.SOCK_STREAM:
af = family
addr = sockaddr
- break
+ sock = socket.socket(af, socket.SOCK_STREAM)
+ try:
+ sock.connect((hostname, port))
+ except socket.error, e:
+ reason = str(e)
+ else:
+ break
else:
- raise SSHException('No suitable address family for %s' % hostname)
- sock = socket.socket(af, socket.SOCK_STREAM)
- sock.connect((hostname, port))
+ raise SSHException(
+ 'Unable to connect to %s: %s' % (hostname, reason))
# okay, normal socket-ish flow here...
threading.Thread.__init__(self)
self.setDaemon(True)
|