Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/server.py @ 37009:5890e5872f36
hgweb: allow defining Server response header for HTTP server
By default, the string contains the Python version. Server
operators may want to change this.
Because we like deterministic tests, we change the test harness
to always set this value to a known string. Various globs over
the server header have now been removed.
# no-check-commit because we add version_string()
Differential Revision: https://phab.mercurial-scm.org/D2840
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 13 Mar 2018 09:45:56 -0700 |
parents | 8e1556ac01bb |
children | a2566597acb5 |
comparison
equal
deleted
inserted
replaced
37008:16203c6079e7 | 37009:5890e5872f36 |
---|---|
229 def _done(self): | 229 def _done(self): |
230 if self._chunked: | 230 if self._chunked: |
231 self.wfile.write('0\r\n\r\n') | 231 self.wfile.write('0\r\n\r\n') |
232 self.wfile.flush() | 232 self.wfile.flush() |
233 | 233 |
234 def version_string(self): | |
235 if self.server.serverheader: | |
236 return self.server.serverheader | |
237 return httpservermod.basehttprequesthandler.version_string(self) | |
238 | |
234 class _httprequesthandlerssl(_httprequesthandler): | 239 class _httprequesthandlerssl(_httprequesthandler): |
235 """HTTPS handler based on Python's ssl module""" | 240 """HTTPS handler based on Python's ssl module""" |
236 | 241 |
237 url_scheme = 'https' | 242 url_scheme = 'https' |
238 | 243 |
302 self.errorlog = elog | 307 self.errorlog = elog |
303 | 308 |
304 self.addr, self.port = self.socket.getsockname()[0:2] | 309 self.addr, self.port = self.socket.getsockname()[0:2] |
305 self.fqaddr = socket.getfqdn(addr[0]) | 310 self.fqaddr = socket.getfqdn(addr[0]) |
306 | 311 |
312 self.serverheader = ui.config('web', 'server-header') | |
313 | |
307 class IPv6HTTPServer(MercurialHTTPServer): | 314 class IPv6HTTPServer(MercurialHTTPServer): |
308 address_family = getattr(socket, 'AF_INET6', None) | 315 address_family = getattr(socket, 'AF_INET6', None) |
309 def __init__(self, *args, **kwargs): | 316 def __init__(self, *args, **kwargs): |
310 if self.address_family is None: | 317 if self.address_family is None: |
311 raise error.RepoError(_('IPv6 is not available on this system')) | 318 raise error.RepoError(_('IPv6 is not available on this system')) |