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'))