diff options
author | Avery Pennarun <apenwarr@gmail.com> | 2011-03-19 22:48:15 -0700 |
---|---|---|
committer | Avery Pennarun <apenwarr@gmail.com> | 2011-03-19 22:48:15 -0700 |
commit | cfb2592346d206c9f0b7307375665a5697e86043 (patch) | |
tree | db6e353aa19776ccee5a2ebf86310c8835a66924 | |
parent | 2e8381ecda445f07587b1f475031cbce01657c4d (diff) |
server.py: handle (throw away) ECONNREFUSED from the DNS server.sshuttle-0.52
This might happen occasionally on a flakey network. Reported by Ed Maste.
-rw-r--r-- | server.py | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -119,7 +119,14 @@ class DnsProxy(Handler): self.sock.send(request) def callback(self): - data = self.sock.recv(4096) + try: + data = self.sock.recv(4096) + except socket.error, e: + if e.args[0] == errno.ECONNREFUSED: + debug2('DNS response: ignoring ECONNREFUSED.\n') + return # might have been spurious; wait for a real answer + else: + raise debug2('DNS response: %d bytes\n' % len(data)) self.mux.send(self.chan, ssnet.CMD_DNS_RESPONSE, data) self.ok = False |