diff options
| author | Giampaolo RodolĂ <g.rodola@gmail.com> | 2010-06-30 17:41:25 (GMT) |
|---|---|---|
| committer | Giampaolo RodolĂ <g.rodola@gmail.com> | 2010-06-30 17:41:25 (GMT) |
| commit | 1daf7aa2b2bb56b480ff50c8cc8ae9c218fd2113 (patch) | |
| tree | 1977c64272a58d2ccc6d89e8574fca0e98e458bd | |
| parent | 9f11f397586b4cc596a9771350daed7f5e8e3e54 (diff) | |
| download | cpython-1daf7aa2b2bb56b480ff50c8cc8ae9c218fd2113.zip cpython-1daf7aa2b2bb56b480ff50c8cc8ae9c218fd2113.tar.gz cpython-1daf7aa2b2bb56b480ff50c8cc8ae9c218fd2113.tar.bz2 | |
Merged revisions 82404 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r82404 | giampaolo.rodola | 2010-06-30 19:38:28 +0200 (mer, 30 giu 2010) | 1 line
fix issue #6589: cleanup asyncore.socket_map if smtpd.SMTPServer constructor raises an exception
........
| -rwxr-xr-x | Lib/smtpd.py | 24 | ||||
| -rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 18 insertions, 9 deletions
diff --git a/Lib/smtpd.py b/Lib/smtpd.py index 3992d7b..c3bd6a5 100755 --- a/Lib/smtpd.py +++ b/Lib/smtpd.py @@ -274,15 +274,21 @@ class SMTPServer(asyncore.dispatcher): self._localaddr = localaddr self._remoteaddr = remoteaddr asyncore.dispatcher.__init__(self) - self.create_socket(socket.AF_INET, socket.SOCK_STREAM) - # try to re-use a server port if possible - self.set_reuse_addr() - self.bind(localaddr) - self.listen(5) - print >> DEBUGSTREAM, \ - '%s started at %s\n\tLocal addr: %s\n\tRemote addr:%s' % ( - self.__class__.__name__, time.ctime(time.time()), - localaddr, remoteaddr) + try: + self.create_socket(socket.AF_INET, socket.SOCK_STREAM) + # try to re-use a server port if possible + self.set_reuse_addr() + self.bind(localaddr) + self.listen(5) + except: + # cleanup asyncore.socket_map before raising + self.close() + raise + else: + print >> DEBUGSTREAM, \ + '%s started at %s\n\tLocal addr: %s\n\tRemote addr:%s' % ( + self.__class__.__name__, time.ctime(time.time()), + localaddr, remoteaddr) def handle_accept(self): conn, addr = self.accept() @@ -73,6 +73,9 @@ C-API Library ------- +- Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor + raises an exception. + - Issue #9125: Add recognition of 'except ... as ...' syntax to parser module. - Issue #9085: email package version number bumped to its correct |
