Commit 336a201d authored by Guido van Rossum's avatar Guido van Rossum

Sjoerd Mullender writes:

Urllib makes the URL of the opened file available through the geturl
method of the returned object.  For local files, this consists of
file: plus the name of the file.  This results in an invalid URL if
the file name was relative.  This patch fixes this so that the
returned URL is just a relative URL in that case.  When the file name
is absolute, the URL returned is of the form file:///absolute/path.

[I guess that a URL of the form "file:foo.html" is illegal...  GvR]
parent ff3a278d
......@@ -325,13 +325,19 @@ class URLopener:
'Content-Type: %s\n' % (mtype or 'text/plain')))
host, file = splithost(url)
if not host:
urlfile = file
if file[:1] == '/':
urlfile = 'file://' + file
return addinfourl(open(url2pathname(file), 'rb'),
headers, 'file:'+file)
headers, urlfile)
host, port = splitport(host)
if not port \
and socket.gethostbyname(host) in (localhost(), thishost()):
urlfile = file
if file[:1] == '/':
urlfile = 'file://' + file
return addinfourl(open(url2pathname(file), 'rb'),
headers, 'file:'+file)
headers, urlfile)
raise IOError, ('local file error', 'not on local host')
# Use FTP protocol
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment