Commit 0f7cddc3 authored by Amaury Forgeot d'Arc's avatar Amaury Forgeot d'Arc

Issue839496: SimpleHTTPServer should open all files in binary mode.

Forward-port of 38255 (2005/01/15!)
This was already fixed in 2.4, but never merged into trunk...
py3k is already right, thanks to the bytes/str distinction!

Should be backported to 2.5.
parent aaca9781
......@@ -79,12 +79,11 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
else:
return self.list_directory(path)
ctype = self.guess_type(path)
if ctype.startswith('text/'):
mode = 'r'
else:
mode = 'rb'
try:
f = open(path, mode)
# Always read in binary mode. Opening files in text mode may cause
# newline translations, making the actual size of the content
# transmitted *less* than the content-length!
f = open(path, 'rb')
except IOError:
self.send_error(404, "File not found")
return None
......
......@@ -36,6 +36,12 @@ Core and Builtins
Library
-------
- Issue #839496: SimpleHTTPServer used to open text files in text mode. This is
both unnecessary (HTTP allows text content to be sent in several forms) and
wrong because the actual transmitted size could differ with the
content-length. The problem had been corrected in the 2.4 branch, but never
merged into trunk.
- Issue #2663: add filtering capability to shutil.copytree().
- Issue #1622: Correct interpretation of various ZIP header fields.
......
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