[Python-3000-checkins] r56905 - python/branches/py3k/Lib/BaseHTTPServer.py
jeremy.hylton
python-3000-checkins at python.org
Fri Aug 10 20:49:33 CEST 2007
Author: jeremy.hylton
Date: Fri Aug 10 20:49:32 2007
New Revision: 56905
Modified:
python/branches/py3k/Lib/BaseHTTPServer.py
Log:
Allow rfc822 to process headers from an incoming HTTP request.
Modified: python/branches/py3k/Lib/BaseHTTPServer.py
==============================================================================
--- python/branches/py3k/Lib/BaseHTTPServer.py (original)
+++ python/branches/py3k/Lib/BaseHTTPServer.py Fri Aug 10 20:49:32 2007
@@ -70,6 +70,7 @@
__all__ = ["HTTPServer", "BaseHTTPRequestHandler"]
+import io
import sys
import time
import socket # For gethostbyaddr()
@@ -278,7 +279,13 @@
self.command, self.path, self.request_version = command, path, version
# 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', "")
if conntype.lower() == 'close':
More information about the Python-3000-checkins
mailing list