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