Revision bb700ea5
b/ncclient/transport/ssh.py | ||
---|---|---|
175 | 175 |
:type look_for_keys: `bool` |
176 | 176 |
""" |
177 | 177 |
|
178 |
assert(username is not None) |
|
178 |
if username is None: |
|
179 |
raise SSHError("No username specified") |
|
179 | 180 |
|
180 |
for (family, socktype, proto, canonname, sockaddr) in \ |
|
181 |
socket.getaddrinfo(host, port): |
|
182 |
if socktype == socket.SOCK_STREAM: |
|
183 |
af = family |
|
184 |
addr = sockaddr |
|
185 |
break |
|
181 |
sock = None |
|
182 |
for res in socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM): |
|
183 |
af, socktype, proto, canonname, sa = res |
|
184 |
try: |
|
185 |
sock = socket.socket(af, socktype, proto) |
|
186 |
sock.settimeout(timeout) |
|
187 |
except socket.error: |
|
188 |
continue |
|
189 |
try: |
|
190 |
sock.connect(sa) |
|
191 |
except socket.error: |
|
192 |
sock.close() |
|
193 |
continue |
|
194 |
break |
|
186 | 195 |
else: |
187 |
raise SSHError('No suitable address family for %s' % host) |
|
188 |
sock = socket.socket(af, socket.SOCK_STREAM) |
|
189 |
sock.settimeout(timeout) |
|
190 |
sock.connect(addr) |
|
196 |
raise SSHError("Could not open socket") |
|
197 |
|
|
191 | 198 |
t = self._transport = paramiko.Transport(sock) |
192 | 199 |
t.set_log_channel(logger.name) |
193 | 200 |
|
Also available in: Unified diff