comparison mercurial/hgweb/protocol.py @ 8845:296767acbb55

hgweb: escape REMOTE_HOST when passing url for addchangegroup If DNS lookups are turned off on the web server, REMOTE_HOST may be populated with REMOTE_ADDR, which, if the remote is an IPv6 hosts will contain colons, thus interfering with the separator character. This is solved by URL quoting the REMOTE_HOST string.
author Henrik Stuart <hg@hstuart.dk>
date Sun, 07 Jun 2009 20:15:37 +0200
parents e3495c399006
children b30775386d40
comparison
equal deleted inserted replaced
8844:d2ef4f2b904a 8845:296767acbb55
161 oldio = sys.stdout, sys.stderr 161 oldio = sys.stdout, sys.stderr
162 sys.stderr = sys.stdout = cStringIO.StringIO() 162 sys.stderr = sys.stdout = cStringIO.StringIO()
163 163
164 try: 164 try:
165 url = 'remote:%s:%s' % (proto, 165 url = 'remote:%s:%s' % (proto,
166 req.env.get('REMOTE_HOST', '')) 166 urllib.quote(
167 req.env.get('REMOTE_HOST', '')))
167 try: 168 try:
168 ret = repo.addchangegroup(gen, 'serve', url) 169 ret = repo.addchangegroup(gen, 'serve', url)
169 except util.Abort, inst: 170 except util.Abort, inst:
170 sys.stdout.write("abort: %s\n" % inst) 171 sys.stdout.write("abort: %s\n" % inst)
171 ret = 0 172 ret = 0