summaryrefslogtreecommitdiff
path: root/Lib/smtpd.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/smtpd.py')
-rwxr-xr-xLib/smtpd.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index b4082786fa..e8459f0920 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -413,8 +413,21 @@ class SMTPServer(asyncore.dispatcher):
self.__class__.__name__, time.ctime(time.time()),
localaddr, remoteaddr), file=DEBUGSTREAM)
- def handle_accept(self):
- conn, addr = self.accept()
+ def handle_accept(self)
+ try:
+ conn, addr = self.accept()
+ except TypeError:
+ # sometimes accept() might return None
+ return
+ except socket.error, err:
+ # ECONNABORTED might be thrown
+ if err[0] != errno.ECONNABORTED:
+ raise
+ return
+ else:
+ # sometimes addr == None instead of (ip, port)
+ if addr == None:
+ return
print('Incoming connection from %s' % repr(addr), file=DEBUGSTREAM)
channel = self.channel_class(self, conn, addr)