mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
ehlo(): A proper fix for SF bug #498572. RFC 1869 describes ESMTP
which requires that if there are ehlo parameters returned with an ehlo
keyword (in the response to EHLO), the keyword and parameters must be
delimited by an ASCII space. Thus responses like
250-AUTH=LOGIN
should be ignored as non-conformant to the RFC (the `=' isn't allowed
in the ehlo keyword).
This is a bug fix candidate.
This commit is contained in:
parent
8a5a270000
commit
be22ae6def
1 changed files with 5 additions and 1 deletions
|
|
@ -398,7 +398,11 @@ class SMTP:
|
|||
resp=self.ehlo_resp.split('\n')
|
||||
del resp[0]
|
||||
for each in resp:
|
||||
m=re.match(r'(?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*)',each)
|
||||
# RFC 1869 requires a space between ehlo keyword and parameters.
|
||||
# It's actually stricter, in that only spaces are allowed between
|
||||
# parameters, but were not going to check for that here. Note
|
||||
# that the space isn't present if there are no parameters.
|
||||
m=re.match(r'(?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?',each)
|
||||
if m:
|
||||
feature=m.group("feature").lower()
|
||||
params=m.string[m.end("feature"):].strip()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue