#10983: fix several bugs in the _tunnel implementation that seem to have missed while porting between branches. A unittest is needed!

This commit is contained in:
Georg Brandl 2011-01-22 22:06:24 +00:00
parent 59531287fd
commit c7c199f907
2 changed files with 7 additions and 3 deletions

View File

@ -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:
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:

View File

@ -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)