Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/server.py @ 41428:4045ab21945a
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.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 27 Jan 2019 18:05:17 -0500 |
parents | 074c72a38423 |
children | 52a4a3e7cc6a |
comparison
equal
deleted
inserted
replaced
41427:40efcf78f3df | 41428:4045ab21945a |
---|---|
163 env[r'CONTENT_TYPE'] = self.headers.typeheader | 163 env[r'CONTENT_TYPE'] = self.headers.typeheader |
164 length = self.headers.getheader(r'content-length') | 164 length = self.headers.getheader(r'content-length') |
165 if length: | 165 if length: |
166 env[r'CONTENT_LENGTH'] = length | 166 env[r'CONTENT_LENGTH'] = length |
167 for header in [h for h in self.headers.keys() | 167 for header in [h for h in self.headers.keys() |
168 if h not in (r'content-type', r'content-length')]: | 168 if h.lower() not in (r'content-type', r'content-length')]: |
169 hkey = r'HTTP_' + header.replace(r'-', r'_').upper() | 169 hkey = r'HTTP_' + header.replace(r'-', r'_').upper() |
170 hval = self.headers.get(header) | 170 hval = self.headers.get(header) |
171 hval = hval.replace(r'\n', r'').strip() | 171 hval = hval.replace(r'\n', r'').strip() |
172 if hval: | 172 if hval: |
173 env[hkey] = hval | 173 env[hkey] = hval |