Fix localhost checking in FileHandler. Raised in #21970.

This commit is contained in:
Senthil Kumaran 2014-07-22 00:15:20 -07:00
parent dfab935c74
commit bc07ac5180
2 changed files with 3 additions and 2 deletions

View File

@ -678,7 +678,7 @@ class HandlerTests(unittest.TestCase):
self.assertEqual(int(headers["Content-length"]), len(data))
def test_file(self):
import email.utils, socket
import email.utils
h = urllib.request.FileHandler()
o = h.parent = MockOpener()
@ -725,6 +725,7 @@ class HandlerTests(unittest.TestCase):
for url in [
"file://localhost:80%s" % urlpath,
"file:///file_does_not_exist.txt",
"file://not-a-local-host.com//dir/file.txt",
"file://%s:80%s/%s" % (socket.gethostbyname('localhost'),
os.getcwd(), TESTFN),
"file://somerandomhost.ontheinternet.com%s/%s" %

View File

@ -1315,7 +1315,7 @@ class FileHandler(BaseHandler):
url = req.selector
if url[:2] == '//' and url[2:3] != '/' and (req.host and
req.host != 'localhost'):
if not req.host is self.get_names():
if not req.host in self.get_names():
raise URLError("file:// scheme is supported only on localhost")
else:
return self.open_local_file(req)