fix socks5 mode with tls

This commit is contained in:
Maximilian Hils 2016-10-16 23:05:33 -07:00
parent 43a83c89e7
commit 758860531a
2 changed files with 13 additions and 3 deletions

View File

@ -53,9 +53,7 @@ class Socks5Proxy(protocol.Layer, protocol.ServerConnectionMixin):
except (socks.SocksError, netlib.exceptions.TcpException) as e:
raise exceptions.Socks5ProtocolException("SOCKS5 mode failure: %s" % repr(e))
# https://github.com/mitmproxy/mitmproxy/issues/839
address_bytes = (connect_request.addr.host.encode("idna"), connect_request.addr.port)
self.server_conn.address = tcp.Address(address_bytes, connect_request.addr.use_ipv6)
self.server_conn.address = connect_request.addr
layer = self.ctx.next_layer(self)
try:

View File

@ -536,6 +536,18 @@ class TestSocks5(tservers.SocksModeTest):
assert b"SOCKS5 mode failure" in f.content
class TestSocks5SSL(tservers.SocksModeTest):
ssl = True
def test_simple(self):
p = self.pathoc_raw()
with p.connect():
p.socks_connect(("localhost", self.server.port))
p.convert_to_ssl()
f = p.request("get:/p/200")
assert f.status_code == 200
class TestHttps2Http(tservers.ReverseProxyTest):
@classmethod