mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
document the requestline and close_connection attributes, use real booleans, and add tests (closes #23410)
Patch by Martin Panter.
This commit is contained in:
parent
e7a2f64435
commit
70e2847347
3 changed files with 61 additions and 10 deletions
|
|
@ -273,7 +273,7 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
"""
|
||||
self.command = None # set in case of error on the first line
|
||||
self.request_version = version = self.default_request_version
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
requestline = str(self.raw_requestline, 'iso-8859-1')
|
||||
requestline = requestline.rstrip('\r\n')
|
||||
self.requestline = requestline
|
||||
|
|
@ -299,14 +299,14 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
self.send_error(400, "Bad request version (%r)" % version)
|
||||
return False
|
||||
if version_number >= (1, 1) and self.protocol_version >= "HTTP/1.1":
|
||||
self.close_connection = 0
|
||||
self.close_connection = False
|
||||
if version_number >= (2, 0):
|
||||
self.send_error(505,
|
||||
"Invalid HTTP Version (%s)" % base_version_number)
|
||||
return False
|
||||
elif len(words) == 2:
|
||||
command, path = words
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
if command != 'GET':
|
||||
self.send_error(400,
|
||||
"Bad HTTP/0.9 request type (%r)" % command)
|
||||
|
|
@ -328,10 +328,10 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
|
||||
conntype = self.headers.get('Connection', "")
|
||||
if conntype.lower() == 'close':
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
elif (conntype.lower() == 'keep-alive' and
|
||||
self.protocol_version >= "HTTP/1.1"):
|
||||
self.close_connection = 0
|
||||
self.close_connection = False
|
||||
# Examine the headers and look for an Expect directive
|
||||
expect = self.headers.get('Expect', "")
|
||||
if (expect.lower() == "100-continue" and
|
||||
|
|
@ -376,7 +376,7 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
self.send_error(414)
|
||||
return
|
||||
if not self.raw_requestline:
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
return
|
||||
if not self.parse_request():
|
||||
# An error code has been sent, just exit
|
||||
|
|
@ -391,12 +391,12 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
except socket.timeout as e:
|
||||
#a read or a write timed out. Discard this connection
|
||||
self.log_error("Request timed out: %r", e)
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
return
|
||||
|
||||
def handle(self):
|
||||
"""Handle multiple requests if necessary."""
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
|
||||
self.handle_one_request()
|
||||
while not self.close_connection:
|
||||
|
|
@ -478,9 +478,9 @@ class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
|
|||
|
||||
if keyword.lower() == 'connection':
|
||||
if value.lower() == 'close':
|
||||
self.close_connection = 1
|
||||
self.close_connection = True
|
||||
elif value.lower() == 'keep-alive':
|
||||
self.close_connection = 0
|
||||
self.close_connection = False
|
||||
|
||||
def end_headers(self):
|
||||
"""Send the blank line ending the MIME headers."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue