hgweb: fixes to make hg serve prefix handling more robust

This commit is contained in:
Michele Cella 2008-01-22 22:13:29 +01:00
parent ba528333cb
commit 095d8aff18
3 changed files with 14 additions and 6 deletions

View File

@ -2418,11 +2418,17 @@ def serve(ui, repo, **opts):
if not ui.verbose: return
if self.httpd.port != 80:
ui.status(_('listening at http://%s:%d/\n') %
(self.httpd.addr, self.httpd.port))
if self.httpd.prefix:
prefix = self.httpd.prefix.strip('/') + '/'
else:
ui.status(_('listening at http://%s/\n') % self.httpd.addr)
prefix = ''
if self.httpd.port != 80:
ui.status(_('listening at http://%s:%d/%s\n') %
(self.httpd.addr, self.httpd.port, prefix))
else:
ui.status(_('listening at http://%s/%s\n') %
(self.httpd.addr, prefix))
def run(self):
self.httpd.serve_forever()

View File

@ -172,7 +172,7 @@ class hgwebdir(object):
if u.configbool("web", "hidden", untrusted=True):
continue
parts = [req.env['PATH_INFO'], name]
parts = [req.env['PATH_INFO'].strip('/'), name]
if req.env['SCRIPT_NAME']:
parts.insert(0, req.env['SCRIPT_NAME'])
url = ('/'.join(parts).replace("//", "/")) + '/'

View File

@ -206,7 +206,9 @@ def create_server(ui, repo):
myui = repo.ui
address = myui.config("web", "address", "")
port = int(myui.config("web", "port", 8000))
prefix = myui.config("web", "prefix", "").rstrip("/")
prefix = myui.config("web", "prefix", "")
if prefix:
prefix = "/" + prefix.strip("/")
use_ipv6 = myui.configbool("web", "ipv6")
webdir_conf = myui.config("web", "webdir_conf")
ssl_cert = myui.config("web", "certificate")