summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2008-01-17 07:43:20 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2008-01-17 07:43:20 (GMT)
commit63bfc1d19fa1abe7d1b7d3e25a17083f8077f6fa (patch)
tree382f169cef22f95f7d005a3b59ad0d7bb0232721
parent473170908e11e347aca4adf23738a82162b981e3 (diff)
downloadcpython-63bfc1d19fa1abe7d1b7d3e25a17083f8077f6fa.zip
cpython-63bfc1d19fa1abe7d1b7d3e25a17083f8077f6fa.tar.gz
cpython-63bfc1d19fa1abe7d1b7d3e25a17083f8077f6fa.tar.bz2
Comply with RFC 3207.
Fixes issue 829951 - http://bugs.python.org/issue829951
-rw-r--r--Doc/whatsnew/2.6.rst6
-rwxr-xr-xLib/smtplib.py8
2 files changed, 14 insertions, 0 deletions
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 126f546..48efaba 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -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.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 5604241..97b1e20 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -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=[],