Commit 110941a4 authored by Jeremy Hylton's avatar Jeremy Hylton

If the status line is invalid, assume it is a pre-1.0 response. The

msg/headers are empty and the entire response is treated as the body.
parent 2bf405ad
...@@ -118,8 +118,9 @@ class HTTPResponse: ...@@ -118,8 +118,9 @@ class HTTPResponse:
[version, status] = string.split(line, None, 1) [version, status] = string.split(line, None, 1)
reason = "" reason = ""
except ValueError: except ValueError:
self.close() version = "HTTP/0.9"
raise BadStatusLine(line) status = "200"
reason = ""
if version[:5] != 'HTTP/': if version[:5] != 'HTTP/':
self.close() self.close()
raise BadStatusLine(line) raise BadStatusLine(line)
...@@ -129,11 +130,17 @@ class HTTPResponse: ...@@ -129,11 +130,17 @@ class HTTPResponse:
if version == 'HTTP/1.0': if version == 'HTTP/1.0':
self.version = 10 self.version = 10
elif version[:7] == 'HTTP/1.': elif version.startswith('HTTP/1.'):
self.version = 11 # use HTTP/1.1 code for HTTP/1.x where x>=1 self.version = 11 # use HTTP/1.1 code for HTTP/1.x where x>=1
elif version == 'HTTP/0.9':
self.version = 9
else: else:
raise UnknownProtocol(version) raise UnknownProtocol(version)
if self.version == 9:
self.msg = mimetools.Message(StringIO())
return
self.msg = mimetools.Message(self.fp, 0) self.msg = mimetools.Message(self.fp, 0)
if self.debuglevel > 0: if self.debuglevel > 0:
for hdr in self.msg.headers: for hdr in self.msg.headers:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment