Skip to content

Commit 32c6a63

Browse files
committed
fix ipv6 issue
1 parent 6bacb53 commit 32c6a63

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

pproxy/__doc__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__title__ = "pproxy"
2-
__version__ = "2.1.3"
2+
__version__ = "2.1.4"
33
__license__ = "MIT"
44
__description__ = "Proxy server that can tunnel among remote servers by regex rules."
55
__keywords__ = "proxy socks http shadowsocks shadowsocksr ssr redirect pf tunnel cipher ssl udp"

pproxy/server.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import argparse, time, re, asyncio, functools, base64, random, urllib.parse
1+
import argparse, time, re, asyncio, functools, base64, random, urllib.parse, socket
22
from . import proto
33
from .__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

Comments
 (0)