Comply with RFC 3207.

Fixes issue 829951 - http://bugs.python.org/issue829951
This commit is contained in:
Gregory P. Smith 2008-01-17 07:43:20 +00:00
parent 473170908e
commit 63bfc1d19f
2 changed files with 14 additions and 0 deletions

View File

@ -1091,6 +1091,12 @@ complete list of changes, or look through the CVS logs for all the details.
.. Patch #957003
* In the :mod:`smtplib` module, SMTP.starttls() now complies with :rfc:`3207`
and forgets any knowledge obtained from the server not obtained from
the TLS negotiation itself. Patch contributed by Bill Fenner.
.. Issue 829951
* The :mod:`socket` module now supports TIPC (http://tipc.sf.net),
a high-performance non-IP-based protocol designed for use in clustered
environments. TIPC addresses are 4- or 5-tuples.

View File

@ -589,6 +589,14 @@ class SMTP:
raise RuntimeError("No SSL support included in this Python")
self.sock = ssl.wrap_socket(self.sock, keyfile, certfile)
self.file = SSLFakeFile(self.sock)
# RFC 3207:
# The client MUST discard any knowledge obtained from
# the server, such as the list of SMTP service extensions,
# which was not obtained from the TLS negotiation itself.
self.helo_resp = None
self.ehlo_resp = None
self.esmtp_features = {}
self.does_esmtp = 0
return (resp, reply)
def sendmail(self, from_addr, to_addrs, msg, mail_options=[],