D1112: hgweb: fix decodevaluefromheaders to always return a bytes value
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Mon Oct 16 13:51:11 UTC 2017
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
That's more in line with what we want, and we know it's ASCII data
since that's all HTTP technically allows in headers anyway.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1112
AFFECTED FILES
mercurial/hgweb/protocol.py
CHANGE DETAILS
diff --git a/mercurial/hgweb/protocol.py b/mercurial/hgweb/protocol.py
--- a/mercurial/hgweb/protocol.py
+++ b/mercurial/hgweb/protocol.py
@@ -30,15 +30,18 @@
HGERRTYPE = 'application/hg-error'
def decodevaluefromheaders(req, headerprefix):
- """Decode a long value from multiple HTTP request headers."""
+ """Decode a long value from multiple HTTP request headers.
+
+ Returns the value as a bytes, not a str.
+ """
chunks = []
i = 1
+ prefix = headerprefix.upper().replace(r'-', r'_')
while True:
- v = req.env.get('HTTP_%s_%d' % (
- headerprefix.upper().replace('-', '_'), i))
+ v = req.env.get(r'HTTP_%s_%d' % (prefix, i))
if v is None:
break
- chunks.append(v)
+ chunks.append(pycompat.bytesurl(v))
i += 1
return ''.join(chunks)
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list