diff options
author | R David Murray <rdmurray@bitdance.com> | 2014-08-30 16:51:59 -0400 |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2014-08-30 16:51:59 -0400 |
commit | 0cff49fcf9b5689a8940c318ea0d846317f3a7d3 (patch) | |
tree | 6cfaf2c7f2cd5ae1bec06c6dabab72b23d3e9939 /Lib/smtplib.py | |
parent | a64b92edd3b7c9145e014aac9a15821d7b05b71a (diff) | |
download | cpython-0cff49fcf9b5689a8940c318ea0d846317f3a7d3.tar.gz cpython-0cff49fcf9b5689a8940c318ea0d846317f3a7d3.zip |
#22215: have the smtplib 'quit' command reset the state.
Without this reset, starttls would fail if a connect/starttls was done after a
quit, because smtplib assumed the existing value of emspt_features was
accurate, but it gets reset when starttls completes (and the new value does
not contain the starttls capability, since tls is already started at that
point). (There may be additional places where this lack of reset was an
issue as well.)
Patch by Milan Oberkirch.
Diffstat (limited to 'Lib/smtplib.py')
-rwxr-xr-x | Lib/smtplib.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/smtplib.py b/Lib/smtplib.py index 759b77e47fa..09b4ea64796 100755 --- a/Lib/smtplib.py +++ b/Lib/smtplib.py @@ -866,6 +866,10 @@ class SMTP: def quit(self): """Terminate the SMTP session.""" res = self.docmd("quit") + # A new EHLO is required after reconnecting with connect() + self.ehlo_resp = self.helo_resp = None + self.esmtp_features = {} + self.does_esmtp = False self.close() return res |