Commit 883de5fb authored by Jeremy Hylton's avatar Jeremy Hylton

Allow rfc822 to process headers from an incoming HTTP request.

parent f27426ab
...@@ -70,6 +70,7 @@ __version__ = "0.3" ...@@ -70,6 +70,7 @@ __version__ = "0.3"
__all__ = ["HTTPServer", "BaseHTTPRequestHandler"] __all__ = ["HTTPServer", "BaseHTTPRequestHandler"]
import io
import sys import sys
import time import time
import socket # For gethostbyaddr() import socket # For gethostbyaddr()
...@@ -278,7 +279,13 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler): ...@@ -278,7 +279,13 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
self.command, self.path, self.request_version = command, path, version self.command, self.path, self.request_version = command, path, version
# Examine the headers and look for a Connection directive # Examine the headers and look for a Connection directive
self.headers = self.MessageClass(self.rfile, 0) # MessageClass == rfc822 expects ascii, so use a text wrapper.
text = io.TextIOWrapper(self.rfile)
self.headers = self.MessageClass(text, 0)
# The text wrapper does buffering (as does self.rfile). We
# don't want to leave any data in the buffer of the text
# wrapper.
assert not text.buffer.peek()
conntype = self.headers.get('Connection', "") conntype = self.headers.get('Connection', "")
if conntype.lower() == 'close': if conntype.lower() == 'close':
......
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