diff --git a/mitmproxy/proxy/modes/socks_proxy.py b/mitmproxy/proxy/modes/socks_proxy.py index e9e684b35..3d8c9ee82 100644 --- a/mitmproxy/proxy/modes/socks_proxy.py +++ b/mitmproxy/proxy/modes/socks_proxy.py @@ -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: diff --git a/test/mitmproxy/test_server.py b/test/mitmproxy/test_server.py index 923d8ccf1..a175d1935 100644 --- a/test/mitmproxy/test_server.py +++ b/test/mitmproxy/test_server.py @@ -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