Kaydet (Commit) c7c199f9 authored tarafından Georg Brandl's avatar Georg Brandl

#10983: fix several bugs in the _tunnel implementation that seem to have missed…

#10983: fix several bugs in the _tunnel implementation that seem to have missed while porting between branches.  A unittest is needed!
üst 59531287
...@@ -653,6 +653,7 @@ class HTTPConnection: ...@@ -653,6 +653,7 @@ class HTTPConnection:
self._method = None self._method = None
self._tunnel_host = None self._tunnel_host = None
self._tunnel_port = None self._tunnel_port = None
self._tunnel_headers = {}
self._set_hostport(host, port) self._set_hostport(host, port)
...@@ -691,15 +692,16 @@ class HTTPConnection: ...@@ -691,15 +692,16 @@ class HTTPConnection:
def _tunnel(self): def _tunnel(self):
self._set_hostport(self._tunnel_host, self._tunnel_port) self._set_hostport(self._tunnel_host, self._tunnel_port)
connect_str = "CONNECT %s:%d HTTP/1.0\r\n" %(self.host, self.port) connect_str = "CONNECT %s:%d HTTP/1.0\r\n" % (self.host, self.port)
connect_bytes = connect_str.encode("ascii") connect_bytes = connect_str.encode("ascii")
self.send(connect_bytes) self.send(connect_bytes)
for header, value in self._tunnel_headers.iteritems(): for header, value in self._tunnel_headers.items():
header_str = "%s: %s\r\n" % (header, value) header_str = "%s: %s\r\n" % (header, value)
header_bytes = header_str.encode("latin1") header_bytes = header_str.encode("latin1")
self.send(header_bytes) self.send(header_bytes)
self.send(b'\r\n')
response = self.response_class(self.sock, method = self._method) response = self.response_class(self.sock, method=self._method)
(version, code, message) = response._read_status() (version, code, message) = response._read_status()
if code != 200: if code != 200:
......
...@@ -16,6 +16,8 @@ Core and Builtins ...@@ -16,6 +16,8 @@ Core and Builtins
Library Library
------- -------
- Issue #10983: Fix several bugs making tunnel requests in http.client.
- Issue #10955: zipimport uses ASCII encoding instead of cp497 to decode - Issue #10955: zipimport uses ASCII encoding instead of cp497 to decode
filenames, at bootstrap, if the codec registry is not ready yet. It is still filenames, at bootstrap, if the codec registry is not ready yet. It is still
possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding) possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding)
......
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