Commit d3f193fe authored by Moshe Zadka's avatar Moshe Zadka

* Fixing the password-proxy bug

* Not sending content-type and content-length twice
parent 6abce91a
...@@ -477,8 +477,8 @@ class ProxyHandler(BaseHandler): ...@@ -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): ...@@ -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): ...@@ -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)
......
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