diff options
author | Robey Pointer <robey@twitter.com> | 2009-05-10 21:12:41 -0700 |
---|---|---|
committer | Robey Pointer <robey@twitter.com> | 2009-05-10 21:12:41 -0700 |
commit | 62d49255d5711163bc7a51b8f09097ea3dac7451 (patch) | |
tree | d1f8768edd44e5fdf4fac5b06b58e7313a08b125 | |
parent | 4e2b250ace1c782708cb294cfc418b423cc5e55d (diff) | |
parent | 044814ba16467264173b9c6573e410d6cbceb6e0 (diff) | |
download | paramiko-62d49255d5711163bc7a51b8f09097ea3dac7451.tar.gz |
Merge commit 'shikhar/master'
-rw-r--r-- | paramiko/client.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/paramiko/client.py b/paramiko/client.py index 52038bc3..1644d466 100644 --- a/paramiko/client.py +++ b/paramiko/client.py @@ -273,17 +273,21 @@ class SSHClient (object): establishing an SSH session @raise socket.error: if a socket error occurred while connecting """ - if len(hostname.split(':')) > 1: - sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + for (family, socktype, proto, canonname, sockaddr) in \ + socket.getaddrinfo(hostname, port): + if socktype==socket.SOCK_STREAM: + af = family + addr = sockaddr + break else: - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + raise SSHException('No suitable address family for %s' % hostname) + sock = socket.socket(af, socket.SOCK_STREAM) if timeout is not None: try: sock.settimeout(timeout) except: pass - - sock.connect((hostname, port)) + sock.connect(addr) t = self._transport = Transport(sock) if self._log_channel is not None: @@ -316,6 +320,8 @@ class SSHClient (object): else: key_filenames = key_filename self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys) + if agent_forwarding: + self._forward_agent() def close(self): """ @@ -474,4 +480,4 @@ class SSHClient (object): def _log(self, level, msg): self._transport._log(level, msg) - + |