Show More
@@ -140,6 +140,11 b' class url(object):' | |||
|
140 | 140 | self.host, self.port = self.host.rsplit(':', 1) |
|
141 | 141 | if not self.host: |
|
142 | 142 | self.host = None |
|
143 | ||
|
144 | if (self.host and self.scheme == 'file' and | |
|
145 | self.host not in ('localhost', '127.0.0.1', '[::1]')): | |
|
146 | raise util.Abort(_('file:// URLs can only refer to localhost')) | |
|
147 | ||
|
143 | 148 | self.path = path |
|
144 | 149 | |
|
145 | 150 | for a in ('user', 'passwd', 'host', 'port', |
@@ -78,4 +78,8 b' regular shell commands.' | |||
|
78 | 78 | |
|
79 | 79 | $ URL=`python -c "import os; print 'file://foobar' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"` |
|
80 | 80 | $ hg pull -q "$URL" |
|
81 | abort: file:// URLs can only refer to localhost | |
|
82 | [255] | |
|
81 | 83 | |
|
84 | $ URL=`python -c "import os; print 'file://localhost' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"` | |
|
85 | $ hg pull -q "$URL" |
@@ -158,6 +158,13 b' def test_url():' | |||
|
158 | 158 | >>> url('/x///z/y/') |
|
159 | 159 | <url path: '/x///z/y/'> |
|
160 | 160 | |
|
161 | Non-localhost file URL: | |
|
162 | ||
|
163 | >>> u = url('file://mercurial.selenic.com/foo') | |
|
164 | Traceback (most recent call last): | |
|
165 | File "<stdin>", line 1, in ? | |
|
166 | Abort: file:// URLs can only refer to localhost | |
|
167 | ||
|
161 | 168 | Empty URL: |
|
162 | 169 | |
|
163 | 170 | >>> u = url('') |
General Comments 0
You need to be logged in to leave comments.
Login now