From 26ba54acef57a3f30a392364102e2e9f69c59adb Mon Sep 17 00:00:00 2001
From: Rickard Armiento <rickard-gpg@armiento.net>
Date: Wed, 13 Mar 2024 17:22:47 +0100
Subject: [PATCH] allow relaying requested port to SimpleProxy by specifying
 port number 0

---
 pproxy/server.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pproxy/server.py b/pproxy/server.py
index dc3e4e5..5836eb5 100644
--- a/pproxy/server.py
+++ b/pproxy/server.py
@@ -270,7 +270,7 @@ class ProxySimple(ProxyDirect):
         data = self.cipher.datagram.decrypt(data) if self.cipher else data
         return self.jump.udp_packet_unpack(self.rproto.udp_unpack(data))
     def destination(self, host, port):
-        return self.host_name, self.port
+        return self.host_name, self.port if self.port != 0 else port
     def udp_prepare_connection(self, host, port, data):
         data = self.jump.udp_prepare_connection(host, port, data)
         whost, wport = self.jump.destination(host, port)
@@ -289,7 +289,7 @@ class ProxySimple(ProxyDirect):
         if self.unix:
             return asyncio.open_unix_connection(path=self.bind)
         else:
-            return asyncio.open_connection(host=self.host_name, port=self.port, local_addr=local_addr, family=family)
+            return asyncio.open_connection(host=self.host_name, port=self.port if self.port != 0 else port, local_addr=local_addr, family=family)
     async def prepare_connection(self, reader_remote, writer_remote, host, port):
         reader_remote, writer_remote = proto.sslwrap(reader_remote, writer_remote, self.sslclient, False, self.host_name)
         _, writer_cipher_r = await prepare_ciphers(self.cipher, reader_remote, writer_remote, self.bind)
-- 
GitLab