Merged revisions 82780 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82780 | senthil.kumaran | 2010-07-11 08:42:43 +0530 (Sun, 11 Jul 2010) | 3 lines
Stricter verification for file based url scheme and reliance on ftp protocol.
........
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index b5a2437..23631f6 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -726,6 +726,8 @@
("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://localhost//foo/something.txt", False),
]:
req = Request(url)
try:
@@ -736,6 +738,7 @@
else:
self.assertTrue(o.req is req)
self.assertEqual(req.type, "ftp")
+ self.assertEqual(req.type is "ftp", ftp)
def test_http(self):
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 40e4427..f6f7be9 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1262,7 +1262,8 @@
# Use local file or FTP depending on form of URL
def file_open(self, req):
url = req.get_selector()
- if url[:2] == '//' and url[2:3] != '/':
+ if url[:2] == '//' and url[2:3] != '/' and (req.host and
+ req.host != 'localhost'):
req.type = 'ftp'
return self.parent.open(req)
else: