summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2010-10-14 11:57:35 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2010-10-14 11:57:35 (GMT)
commit383c32dd3821828f271c0bf7bcf21f0ba71792e8 (patch)
treeaf0d55d8de4b60bfb1a4ce993a29b7387eb136b8 /Lib
parent6d7be5f86cf9eca0ab6f4c53b834e48f81ed6291 (diff)
downloadcpython-383c32dd3821828f271c0bf7bcf21f0ba71792e8.zip
cpython-383c32dd3821828f271c0bf7bcf21f0ba71792e8.tar.gz
cpython-383c32dd3821828f271c0bf7bcf21f0ba71792e8.tar.bz2
Issue10063 - file:// scheme will stop accessing remote hosts via ftp protocol
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_urllib2.py4
-rw-r--r--Lib/urllib/request.py6
2 files changed, 5 insertions, 5 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 5a168ee..8d59180 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -731,11 +731,11 @@ class HandlerTests(unittest.TestCase):
# file:///blah.txt (a file)
# file://ftp.example.com/blah.txt (an ftp URL)
for url, ftp in [
- ("file://ftp.example.com//foo.txt", True),
+ ("file://ftp.example.com//foo.txt", False),
("file://ftp.example.com///foo.txt", False),
# XXXX bug: fails with OSError, should be URLError
("file://ftp.example.com/foo.txt", False),
- ("file://somehost//foo/something.txt", True),
+ ("file://somehost//foo/something.txt", False),
("file://localhost//foo/something.txt", False),
]:
req = Request(url)
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index e2845c9..9674b96 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -1228,8 +1228,8 @@ class FileHandler(BaseHandler):
url = req.selector
if url[:2] == '//' and url[2:3] != '/' and (req.host and
req.host != 'localhost'):
- req.type = 'ftp'
- return self.parent.open(req)
+ if not req.host is self.get_names():
+ raise URLError("file:// scheme is supported only on localhost")
else:
return self.open_local_file(req)
@@ -1712,7 +1712,7 @@ class URLopener:
if not isinstance(url, str):
raise URLError('file error', 'proxy support for file protocol currently not implemented')
if url[:2] == '//' and url[2:3] != '/' and url[2:12].lower() != 'localhost/':
- return self.open_ftp(url)
+ raise ValueError("file:// scheme is supported only on localhost")
else:
return self.open_local_file(url)