Anonymous committed 3ff784f

Buglet fix in

Content-Type and Content-Length headers and values are only inserted into the wsgi.environ if they are present in the actual request. That way, if those headers were not passed by the UA, then they will not be present in cherrypy.request.headers.

Comments (0)

Files changed (1)


     def parse_headers(self, headers):
         environ = {}
-        environ["CONTENT_TYPE"] = headers.getheader("Content-type", "")
-        environ["CONTENT_LENGTH"] = headers.getheader("Content-length") or ""
+        ct = headers.getheader("Content-type", "")
+        if ct:
+            environ["CONTENT_TYPE"] = ct
+        cl = headers.getheader("Content-length") or ""
+        if cl:
+            environ["CONTENT_LENGTH"] = cl
         # Must use keys() here for Python 2.3 (rfc822.Message had no __iter__).
         for k in headers.keys():
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.