From cfb2592346d206c9f0b7307375665a5697e86043 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Sat, 19 Mar 2011 22:48:15 -0700 Subject: server.py: handle (throw away) ECONNREFUSED from the DNS server. This might happen occasionally on a flakey network. Reported by Ed Maste. --- server.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server.py b/server.py index 45bc2fc..37daf77 100644 --- a/server.py +++ b/server.py @@ -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 -- cgit v1.2.3