Commit e8e87d52 authored by Brett Cannon's avatar Brett Cannon

Change all header strings to be as if they were capitalize()'ed. Also call

capitalize in AbstractHTTPHandler before inserting headers into HTTP instance.

Closes bug #649742, again.
parent f45f17c9
...@@ -254,7 +254,7 @@ class Request: ...@@ -254,7 +254,7 @@ class Request:
class OpenerDirector: class OpenerDirector:
def __init__(self): def __init__(self):
server_version = "Python-urllib/%s" % __version__ server_version = "Python-urllib/%s" % __version__
self.addheaders = [('User-Agent', server_version)] self.addheaders = [('User-agent', server_version)]
# manage the individual handlers # manage the individual handlers
self.handlers = [] self.handlers = []
self.handle_open = {} self.handle_open = {}
...@@ -507,7 +507,7 @@ class ProxyHandler(BaseHandler): ...@@ -507,7 +507,7 @@ class ProxyHandler(BaseHandler):
user, password = user_pass.split(':', 1) user, password = user_pass.split(':', 1)
user_pass = base64.encodestring('%s:%s' % (unquote(user), user_pass = base64.encodestring('%s:%s' % (unquote(user),
unquote(password))) unquote(password)))
req.add_header('Proxy-Authorization', 'Basic ' + user_pass) req.add_header('Proxy-authorization', 'Basic ' + user_pass)
host = unquote(host) host = unquote(host)
req.set_proxy(host, type) req.set_proxy(host, type)
if orig_type == type: if orig_type == type:
...@@ -666,7 +666,7 @@ class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler): ...@@ -666,7 +666,7 @@ class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
class ProxyBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler): class ProxyBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
auth_header = 'Proxy-Authorization' auth_header = 'Proxy-authorization'
def http_error_407(self, req, fp, code, msg, headers): def http_error_407(self, req, fp, code, msg, headers):
host = req.get_host() host = req.get_host()
...@@ -818,10 +818,10 @@ class AbstractHTTPHandler(BaseHandler): ...@@ -818,10 +818,10 @@ class AbstractHTTPHandler(BaseHandler):
scheme, sel = splittype(req.get_selector()) scheme, sel = splittype(req.get_selector())
sel_host, sel_path = splithost(sel) sel_host, sel_path = splithost(sel)
h.putheader('Host', sel_host or host) h.putheader('Host', sel_host or host)
for args in self.parent.addheaders: for name, value in self.parent.addheaders:
name, value = args name = name.capitalize()
if name not in req.headers: if name not in req.headers:
h.putheader(*args) h.putheader(name, value)
for k, v in req.headers.items(): for k, v in req.headers.items():
h.putheader(k, v) h.putheader(k, v)
# httplib will attempt to connect() here. be prepared # httplib will attempt to connect() here. be prepared
...@@ -943,7 +943,7 @@ class FileHandler(BaseHandler): ...@@ -943,7 +943,7 @@ class FileHandler(BaseHandler):
modified = rfc822.formatdate(stats.st_mtime) modified = rfc822.formatdate(stats.st_mtime)
mtype = mimetypes.guess_type(file)[0] mtype = mimetypes.guess_type(file)[0]
headers = mimetools.Message(StringIO( headers = mimetools.Message(StringIO(
'Content-Type: %s\nContent-Length: %d\nLast-modified: %s\n' % 'Content-type: %s\nContent-length: %d\nLast-modified: %s\n' %
(mtype or 'text/plain', size, modified))) (mtype or 'text/plain', size, modified)))
if host: if host:
host, port = splitport(host) host, port = splitport(host)
...@@ -985,9 +985,9 @@ class FTPHandler(BaseHandler): ...@@ -985,9 +985,9 @@ class FTPHandler(BaseHandler):
headers = "" headers = ""
mtype = mimetypes.guess_type(req.get_full_url())[0] mtype = mimetypes.guess_type(req.get_full_url())[0]
if mtype: if mtype:
headers += "Content-Type: %s\n" % mtype headers += "Content-type: %s\n" % mtype
if retrlen is not None and retrlen >= 0: if retrlen is not None and retrlen >= 0:
headers += "Content-Length: %d\n" % retrlen headers += "Content-length: %d\n" % retrlen
sf = StringIO(headers) sf = StringIO(headers)
headers = mimetools.Message(sf) headers = mimetools.Message(sf)
return addinfourl(fp, headers, req.get_full_url()) return addinfourl(fp, headers, req.get_full_url())
......
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