summaryrefslogtreecommitdiff
path: root/debian/patches/02_addressfamilies.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/02_addressfamilies.patch')
-rw-r--r--debian/patches/02_addressfamilies.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/debian/patches/02_addressfamilies.patch b/debian/patches/02_addressfamilies.patch
new file mode 100644
index 0000000..3a5f719
--- /dev/null
+++ b/debian/patches/02_addressfamilies.patch
@@ -0,0 +1,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)
+