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.
This commit is contained in:
Amaury Forgeot d'Arc 2008-07-06 21:34:39 +00:00
parent aaca978103
commit 0f7cddc308
2 changed files with 10 additions and 5 deletions

View file

@ -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