Mercurial > public > mercurial-scm > hg-stable
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 |