1- import argparse , time , re , asyncio , functools , base64 , random , urllib .parse
1+ import argparse , time , re , asyncio , functools , base64 , random , urllib .parse , socket
22from . import proto
33from .__doc__ import *
44
@@ -321,7 +321,7 @@ async def open_connection(self, host, port, local_addr, lbind):
321321 if host == 'tunnel' :
322322 raise Exception ('Unknown tunnel endpoint' )
323323 local_addr = local_addr if lbind == 'in' else (lbind , 0 ) if lbind else None
324- family = 0 # if local_addr is None else 30 if ':' in local_addr[0] else 2
324+ family = 0 if local_addr is None else socket . AF_INET6 if ':' in local_addr [0 ] else socket . AF_INET
325325 wait = asyncio .open_connection (host = host , port = port , local_addr = local_addr , family = family )
326326 elif self .ssh :
327327 try :
@@ -337,7 +337,7 @@ async def open_connection(self, host, port, local_addr, lbind):
337337 else :
338338 client_keys = None
339339 local_addr = local_addr if self .lbind == 'in' else (self .lbind , 0 ) if self .lbind else None
340- family = 0 # if local_addr is None else 30 if ':' in local_addr[0] else 2
340+ family = 0 if local_addr is None else socket . AF_INET6 if ':' in local_addr [0 ] else socket . AF_INET
341341 conn = await asyncssh .connect (host = self .host_name , port = self .port , local_addr = local_addr , family = family , x509_trusted_certs = None , known_hosts = None , username = username , password = password , client_keys = client_keys )
342342 if not self .streams .done ():
343343 self .streams .set_result ((conn , None ))
@@ -348,7 +348,7 @@ async def open_connection(self, host, port, local_addr, lbind):
348348 wait = asyncio .open_unix_connection (path = self .bind , ssl = self .sslclient , server_hostname = '' if self .sslclient else None )
349349 else :
350350 local_addr = local_addr if self .lbind == 'in' else (self .lbind , 0 ) if self .lbind else None
351- family = 0 # if local_addr is None else 30 if ':' in local_addr[0] else 2
351+ family = 0 if local_addr is None else socket . AF_INET6 if ':' in local_addr [0 ] else socket . AF_INET
352352 wait = asyncio .open_connection (host = self .host_name , port = self .port , ssl = self .sslclient , local_addr = local_addr , family = family )
353353 reader , writer = await asyncio .wait_for (wait , timeout = SOCKET_TIMEOUT )
354354 except Exception as ex :
0 commit comments