Mercurial > public > mercurial-scm > hg-stable
diff mercurial/wireproto.py @ 25691:5cda0ce05c42
wireproto: add config knob for http header length limit
Well-behaved Mercurial clients will respect the httpheader capability by not
sending http headers longer than the given limit in bytes. The limit is
currently hard-coded at 1024 bytes, a safe value for any web server.
Since parsing headers is a notable factor in web server performance, tuning
header size can nontrivially improve performance for request-heavy operations
(eg. obsolete marker negotiation). Exposing the maximum header length limit
as a configuration setting is a simple way to enable such tuning.
author | Mike Edgar <adgar@google.com> |
---|---|
date | Mon, 29 Jun 2015 12:35:31 -0400 |
parents | 328739ea70c3 |
children | d3d32643c060 |
line wrap: on
line diff
--- a/mercurial/wireproto.py Wed Jul 01 15:12:45 2015 -0500 +++ b/mercurial/wireproto.py Mon Jun 29 12:35:31 2015 -0400 @@ -624,7 +624,8 @@ capsblob = bundle2.encodecaps(bundle2.getrepocaps(repo)) caps.append('bundle2=' + urllib.quote(capsblob)) caps.append('unbundle=%s' % ','.join(changegroupmod.bundlepriority)) - caps.append('httpheader=1024') + caps.append( + 'httpheader=%d' % repo.ui.configint('server', 'maxhttpheaderlen', 1024)) return caps # If you are writing an extension and consider wrapping this function. Wrap