Skip to content

Commit bd489b3

Browse files
brianmayapenwarr
authored andcommitted
Pass socket through to handlers. Required for IPv6 support.
1 parent 8ab5ef2 commit bd489b3

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

client.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,17 +255,17 @@ def onhostlist(hostlist):
255255
fw.sethostip(name, ip)
256256
mux.got_host_list = onhostlist
257257

258-
def onaccept():
258+
def onaccept(listener_sock):
259259
global _extra_fd
260260
try:
261-
sock,srcip = listener.accept()
261+
sock,srcip = listener_sock.accept()
262262
except socket.error, e:
263263
if e.args[0] in [errno.EMFILE, errno.ENFILE]:
264264
debug1('Rejected incoming connection: too many open files!\n')
265265
# free up an fd so we can eat the connection
266266
os.close(_extra_fd)
267267
try:
268-
sock,srcip = listener.accept()
268+
sock,srcip = listener_sock.accept()
269269
sock.close()
270270
finally:
271271
_extra_fd = os.open('/dev/null', os.O_RDONLY)
@@ -287,7 +287,7 @@ def onaccept():
287287
mux.send(chan, ssnet.CMD_CONNECT, '%s,%s' % dstip)
288288
outwrap = MuxWrapper(mux, chan)
289289
handlers.append(Proxy(SockWrapper(sock, sock), outwrap))
290-
handlers.append(Handler([listener], onaccept))
290+
handlers.append(Handler([listener], lambda: onaccept(listener)))
291291

292292
dnsreqs = {}
293293
def dns_done(chan, data):
@@ -297,8 +297,8 @@ def dns_done(chan, data):
297297
del dnsreqs[chan]
298298
debug3('doing sendto %r\n' % (peer,))
299299
dnslistener.sendto(data, peer)
300-
def ondns():
301-
pkt,peer = dnslistener.recvfrom(4096)
300+
def ondns(listener_sock):
301+
pkt,peer = listener_sock.recvfrom(4096)
302302
now = time.time()
303303
if pkt:
304304
debug1('DNS request from %r: %d bytes\n' % (peer, len(pkt)))
@@ -311,7 +311,7 @@ def ondns():
311311
del dnsreqs[chan]
312312
debug3('Remaining DNS requests: %d\n' % len(dnsreqs))
313313
if dnslistener:
314-
handlers.append(Handler([dnslistener], ondns))
314+
handlers.append(Handler([dnslistener], lambda: ondns(dnslistener)))
315315

316316
if seed_hosts != None:
317317
debug1('seed_hosts: %r\n' % seed_hosts)

0 commit comments

Comments
 (0)