indygreg updated this revision to Diff 6832. indygreg edited the summary of this revision.
REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2770?vs=6814&id=6832 REVISION DETAIL https://phab.mercurial-scm.org/D2770 AFFECTED FILES mercurial/hgweb/hgweb_mod.py mercurial/hgweb/hgwebdir_mod.py mercurial/hgweb/request.py CHANGE DETAILS diff --git a/mercurial/hgweb/request.py b/mercurial/hgweb/request.py --- a/mercurial/hgweb/request.py +++ b/mercurial/hgweb/request.py @@ -254,6 +254,8 @@ self.server_write = None self.headers = [] + self.req = parserequestfromenv(wsgienv) + def respond(self, status, type, filename=None, body=None): if not isinstance(type, str): type = pycompat.sysstr(type) diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py --- a/mercurial/hgweb/hgwebdir_mod.py +++ b/mercurial/hgweb/hgwebdir_mod.py @@ -287,6 +287,11 @@ real = repos.get(virtualrepo) if real: wsgireq.env['REPO_NAME'] = virtualrepo + # We have to re-parse because of updated environment + # variable. + # TODO this is kind of hacky and we should have a better + # way of doing this than with REPO_NAME side-effects. + wsgireq.req = requestmod.parserequestfromenv(wsgireq.env) try: # ensure caller gets private copy of ui repo = hg.repository(self.ui.copy(), real) diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -304,7 +304,7 @@ yield r def _runwsgi(self, wsgireq, repo): - req = requestmod.parserequestfromenv(wsgireq.env) + req = wsgireq.req rctx = requestcontext(self, repo) # This state is global across all threads. To: indygreg, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel