Mercurial > hg-stable
changeset 14991:4f39610996fa stable
http2: send an extra header to signal a non-broken client
Some proxies strip the expect header because they forward requests in
a non-compliant way or as a way to defend against bogus clients.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Wed, 27 Jul 2011 18:35:35 -0500 |
parents | 494b26ad8736 |
children | 188936b334b1 |
files | mercurial/hgweb/hgweb_mod.py mercurial/httprepo.py |
diffstat | 2 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py Fri Jul 29 12:46:45 2011 -0500 +++ b/mercurial/hgweb/hgweb_mod.py Wed Jul 27 18:35:35 2011 -0500 @@ -129,8 +129,9 @@ # A client that sends unbundle without 100-continue will # break if we respond early. if (cmd == 'unbundle' and - req.env.get('HTTP_EXPECT', - '').lower() != '100-continue'): + (req.env.get('HTTP_EXPECT', + '').lower() != '100-continue') or + req.env.get('X-HgHttp2', '')): req.drain() req.respond(inst, protocol.HGTYPE) return '0\n%s\n' % inst.message
--- a/mercurial/httprepo.py Fri Jul 29 12:46:45 2011 -0500 +++ b/mercurial/httprepo.py Wed Jul 27 18:35:35 2011 -0500 @@ -78,6 +78,7 @@ if data and self.ui.configbool('ui', 'usehttp2', False): headers['Expect'] = '100-Continue' + headers['X-HgHttp2'] = '1' self.ui.debug("sending %s command\n" % cmd) q = [('cmd', cmd)]