Fix issue 6706: adds new handle_accepted() method to asyncore.dispatcher

This commit is contained in:
Giampaolo Rodolà 2010-10-04 21:08:36 +00:00
parent 4c94c53630
commit 977c707b42
10 changed files with 126 additions and 42 deletions

View file

@ -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')