Fix compatibility issue with HTTPMessage class.
The server needs to use MessageClass to parse.
This commit is contained in:
parent
914ab45d0a
commit
98eb6c2838
|
@ -213,7 +213,6 @@ class HTTPMessage(email.message.Message):
|
|||
occurrences are returned. Case is not important in the header name.
|
||||
|
||||
"""
|
||||
# XXX: copied from rfc822.Message for compatibility
|
||||
name = name.lower() + ':'
|
||||
n = len(name)
|
||||
lst = []
|
||||
|
@ -227,7 +226,7 @@ class HTTPMessage(email.message.Message):
|
|||
lst.append(line)
|
||||
return lst
|
||||
|
||||
def parse_headers(fp):
|
||||
def parse_headers(fp, _class=HTTPMessage):
|
||||
"""Parses only RFC2822 headers from a file pointer.
|
||||
|
||||
email Parser wants to see strings rather than bytes.
|
||||
|
@ -245,7 +244,7 @@ def parse_headers(fp):
|
|||
break
|
||||
hstring = b''.join(headers).decode('iso-8859-1')
|
||||
|
||||
return email.parser.Parser(_class=HTTPMessage).parsestr(hstring)
|
||||
return email.parser.Parser(_class=_class).parsestr(hstring)
|
||||
|
||||
class HTTPResponse(io.RawIOBase):
|
||||
|
||||
|
|
|
@ -313,7 +313,8 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
self.command, self.path, self.request_version = command, path, version
|
||||
|
||||
# Examine the headers and look for a Connection directive.
|
||||
self.headers = http.client.parse_headers(self.rfile)
|
||||
self.headers = http.client.parse_headers(self.rfile,
|
||||
_class=self.MessageClass)
|
||||
|
||||
conntype = self.headers.get('Connection', "")
|
||||
if conntype.lower() == 'close':
|
||||
|
|
Loading…
Reference in New Issue