[Python-checkins] r64762 - in python/trunk: Lib/SimpleHTTPServer.py Misc/NEWS
amaury.forgeotdarc
python-checkins at python.org
Sun Jul 6 23:34:39 CEST 2008
Author: amaury.forgeotdarc
Date: Sun Jul 6 23:34:39 2008
New Revision: 64762
Log:
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.
Modified:
python/trunk/Lib/SimpleHTTPServer.py
python/trunk/Misc/NEWS
Modified: python/trunk/Lib/SimpleHTTPServer.py
==============================================================================
--- python/trunk/Lib/SimpleHTTPServer.py (original)
+++ python/trunk/Lib/SimpleHTTPServer.py Sun Jul 6 23:34:39 2008
@@ -79,12 +79,11 @@
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
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Sun Jul 6 23:34:39 2008
@@ -36,6 +36,12 @@
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.
More information about the Python-checkins
mailing list