Skip to content

Commit 8826f51

Browse files
committed
fix async DNS
1 parent 7c3d4e0 commit 8826f51

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

shadowsocks/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ def __init__(self, params):
352352
def resolve(self, dns_resolver, remote_addr, call_back):
353353
if remote_addr in UDPAsyncDNSHandler.dns_cache:
354354
if call_back:
355-
call_back(remote_addr, None, UDPAsyncDNSHandler.dns_cache[remote_addr], True, *self.params)
355+
call_back(remote_addr, UDPAsyncDNSHandler.dns_cache[remote_addr], self.params)
356356
else:
357357
self.call_back = call_back
358358
self.remote_addr = remote_addr
@@ -367,7 +367,7 @@ def _handle_dns_resolved(self, result, error):
367367
ip = result[1]
368368
if ip:
369369
if self.call_back:
370-
self.call_back(self.remote_addr, None, ip, True, *self.params)
370+
self.call_back(self.remote_addr, ip, self.params)
371371
return
372372
logging.warning("can't resolve %s" % (self.remote_addr,))
373373

shadowsocks/tcprelay.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,9 @@ def _write_to_sock(self, data, sock):
347347
handler = common.UDPAsyncDNSHandler(data[header_length:])
348348
handler.resolve(self._dns_resolver, (dest_addr, dest_port), self._handle_server_dns_resolved)
349349
else:
350-
return self._handle_server_dns_resolved(data[header_length:], (dest_addr, dest_port), dest_addr)
350+
return self._handle_server_dns_resolved((dest_addr, dest_port), dest_addr, data[header_length:])
351351
else:
352-
return self._handle_server_dns_resolved(data[header_length:], (dest_addr, dest_port), dest_addr)
352+
return self._handle_server_dns_resolved((dest_addr, dest_port), dest_addr, data[header_length:])
353353

354354
except Exception as e:
355355
#trace = traceback.format_exc()
@@ -412,7 +412,7 @@ def _write_to_sock(self, data, sock):
412412
logging.error('write_all_to_sock:unknown socket from %s:%d' % (self._client_address[0], self._client_address[1]))
413413
return True
414414

415-
def _handle_server_dns_resolved(self, data, remote_addr, server_addr):
415+
def _handle_server_dns_resolved(self, remote_addr, server_addr, data):
416416
try:
417417
addrs = socket.getaddrinfo(server_addr, remote_addr[1], 0, socket.SOCK_DGRAM, socket.SOL_UDP)
418418
if not addrs: # drop

shadowsocks/udprelay.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -388,17 +388,17 @@ def _handle_server(self):
388388
handler = common.UDPAsyncDNSHandler((data, r_addr, uid, header_length))
389389
handler.resolve(self._dns_resolver, (server_addr, server_port), self._handle_server_dns_resolved)
390390
else:
391-
self._handle_server_dns_resolved((server_addr, server_port), None, server_addr, False, data, r_addr, uid, header_length)
391+
self._handle_server_dns_resolved((server_addr, server_port), server_addr, (data, r_addr, uid, header_length))
392392
else:
393-
self._handle_server_dns_resolved((server_addr, server_port), None, server_addr, False, data, r_addr, uid, header_length)
393+
self._handle_server_dns_resolved((server_addr, server_port), server_addr, (data, r_addr, uid, header_length))
394394

395-
def _handle_server_dns_resolved(self, remote_addr, addrs, server_addr, dns_resolved, data, r_addr, uid, header_length):
395+
def _handle_server_dns_resolved(self, remote_addr, server_addr, params):
396+
data, r_addr, uid, header_length = params
396397
user_id = self._listen_port
397398
try:
398399
server_port = remote_addr[1]
399-
if addrs is None:
400-
addrs = socket.getaddrinfo(server_addr, server_port, 0,
401-
socket.SOCK_DGRAM, socket.SOL_UDP)
400+
addrs = socket.getaddrinfo(server_addr, server_port, 0,
401+
socket.SOCK_DGRAM, socket.SOL_UDP)
402402
if not addrs: # drop
403403
return
404404
af, socktype, proto, canonname, sa = addrs[0]

0 commit comments

Comments
 (0)