Commit d068a2f8 authored by Giampaolo Rodolà's avatar Giampaolo Rodolà

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
........
parent d9a41d85
...@@ -274,14 +274,19 @@ class SMTPServer(asyncore.dispatcher): ...@@ -274,14 +274,19 @@ class SMTPServer(asyncore.dispatcher):
self._localaddr = localaddr self._localaddr = localaddr
self._remoteaddr = remoteaddr self._remoteaddr = remoteaddr
asyncore.dispatcher.__init__(self) asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM) try:
# try to re-use a server port if possible self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr() # try to re-use a server port if possible
self.bind(localaddr) self.set_reuse_addr()
self.listen(5) self.bind(localaddr)
print('%s started at %s\n\tLocal addr: %s\n\tRemote addr:%s' % ( self.listen(5)
self.__class__.__name__, time.ctime(time.time()), except:
localaddr, remoteaddr), file=DEBUGSTREAM) self.close()
raise
else:
print('%s started at %s\n\tLocal addr: %s\n\tRemote addr:%s' % (
self.__class__.__name__, time.ctime(time.time()),
localaddr, remoteaddr), file=DEBUGSTREAM)
def handle_accept(self): def handle_accept(self):
conn, addr = self.accept() conn, addr = self.accept()
......
...@@ -460,6 +460,9 @@ C-API ...@@ -460,6 +460,9 @@ C-API
Library Library
------- -------
- Issue #6589: cleanup asyncore.socket_map in case smtpd.SMTPServer constructor
raises an exception.
- Issue #9110: Addition of ContextDecorator to contextlib, for creating APIs - Issue #9110: Addition of ContextDecorator to contextlib, for creating APIs
that act as both context managers and decorators. contextmanager changes that act as both context managers and decorators. contextmanager changes
to use ContextDecorator. to use ContextDecorator.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment