From 977c707b425ee753d54f3e9010f07ec77ef61274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Giampaolo=20Rodol=C3=A0?= Date: Mon, 4 Oct 2010 21:08:36 +0000 Subject: Fix issue 6706: adds new handle_accepted() method to asyncore.dispatcher --- Lib/asyncore.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'Lib/asyncore.py') diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 8745276a80..a277bddc86 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -352,12 +352,15 @@ class dispatcher: # XXX can return either an address pair or None try: conn, addr = self.socket.accept() - return conn, addr + except TypeError: + return None except socket.error as why: - if why.args[0] == EWOULDBLOCK: - pass + if why.args[0] in (EWOULDBLOCK, ECONNABORTED): + return None else: raise + else: + return conn, addr def send(self, data): try: @@ -506,7 +509,13 @@ class dispatcher: self.log_info('unhandled connect event', 'warning') def handle_accept(self): - self.log_info('unhandled accept event', 'warning') + pair = self.accept() + if pair is not None: + self.handle_accepted(*pair) + + def handle_accepted(self, sock, addr): + sock.close() + self.log_info('unhandled accepted event', 'warning') def handle_close(self): self.log_info('unhandled close event', 'warning') -- cgit v1.2.1