# HG changeset patch # User Matt Harbison # Date 2019-01-27 23:05:17 # Node ID 4045ab21945a1e1b3880ef34715072e6c754c4d9 # Parent 40efcf78f3df53067dbe19b26044271ffaf55faa hgweb: ensure Content-Length and Content-Type are not promoted to HTTP_ on py3 In stabilizing test-lfs-serve-access.t for py3, the server started asserting on blob upload: Environment should not have the key: HTTP_CONTENT_LENGTH (use CONTENT_LENGTH instead) It could be avoided by explicitly setting the Content-Length header on the client side. I didn't go back to py2, but printing the original header here in py37 revealed 'Content-length' when sent to the error log. diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py +++ b/mercurial/hgweb/server.py @@ -165,7 +165,7 @@ class _httprequesthandler(httpservermod. if length: env[r'CONTENT_LENGTH'] = length for header in [h for h in self.headers.keys() - if h not in (r'content-type', r'content-length')]: + if h.lower() not in (r'content-type', r'content-length')]: hkey = r'HTTP_' + header.replace(r'-', r'_').upper() hval = self.headers.get(header) hval = hval.replace(r'\n', r'').strip()