mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
* Fixing the password-proxy bug
* Not sending content-type and content-length twice
This commit is contained in:
parent
6abce91a34
commit
d3f193fe9d
1 changed files with 8 additions and 7 deletions
|
@ -477,8 +477,8 @@ class ProxyHandler(BaseHandler):
|
||||||
host, XXX = splithost(r_type)
|
host, XXX = splithost(r_type)
|
||||||
if '@' in host:
|
if '@' in host:
|
||||||
user_pass, host = host.split('@', 1)
|
user_pass, host = host.split('@', 1)
|
||||||
user_pass = base64.encode_string(unquote(user_passw)).strip()
|
user_pass = base64.encodestring(unquote(user_pass)).strip()
|
||||||
req.addheader('Proxy-Authorization', 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:
|
||||||
|
@ -781,7 +781,7 @@ def encode_digest(digest):
|
||||||
class AbstractHTTPHandler(BaseHandler):
|
class AbstractHTTPHandler(BaseHandler):
|
||||||
|
|
||||||
def do_open(self, http_class, req):
|
def do_open(self, http_class, req):
|
||||||
host = req.get_host()
|
host = urlparse.urlparse(req.get_full_url())[1]
|
||||||
if not host:
|
if not host:
|
||||||
raise URLError('no host given')
|
raise URLError('no host given')
|
||||||
|
|
||||||
|
@ -790,15 +790,16 @@ class AbstractHTTPHandler(BaseHandler):
|
||||||
if req.has_data():
|
if req.has_data():
|
||||||
data = req.get_data()
|
data = req.get_data()
|
||||||
h.putrequest('POST', req.get_selector())
|
h.putrequest('POST', req.get_selector())
|
||||||
h.putheader('Content-type',
|
if not req.headers.has_key('Content-type'):
|
||||||
'application/x-www-form-urlencoded')
|
h.putheader('Content-type',
|
||||||
h.putheader('Content-length', '%d' % len(data))
|
'application/x-www-form-urlencoded')
|
||||||
|
if not req.headers.has_key('Content-length'):
|
||||||
|
h.putheader('Content-length', '%d' % len(data))
|
||||||
else:
|
else:
|
||||||
h.putrequest('GET', req.get_selector())
|
h.putrequest('GET', req.get_selector())
|
||||||
except socket.error, err:
|
except socket.error, err:
|
||||||
raise URLError(err)
|
raise URLError(err)
|
||||||
|
|
||||||
# XXX proxies would have different host here
|
|
||||||
h.putheader('Host', host)
|
h.putheader('Host', host)
|
||||||
for args in self.parent.addheaders:
|
for args in self.parent.addheaders:
|
||||||
h.putheader(*args)
|
h.putheader(*args)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue