From 3b1fee6b91bf7e36a55e5b9e0a444b7364063ce2 Mon Sep 17 00:00:00 2001 From: Dylan Simon Date: Fri, 16 Feb 2024 17:09:29 -0500 Subject: [PATCH] Make wrap_cmd a simple run for unix sockets If unix-target is specified, don't use rebind (fixes a crash when accessing target_port). If unix-listen is specified, there is no port argument to skip. Currently if you specify a wrap_cmd along with a unix_listen socket or a unix_target, things break because of the lack of port. Admittedly there is little reason to use wrap_cmd in this case because you could just run it separately, but it's still a convenient to just run the command. --- websockify/websocketproxy.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/websockify/websocketproxy.py b/websockify/websocketproxy.py index b6f103c..67d7f67 100644 --- a/websockify/websocketproxy.py +++ b/websockify/websocketproxy.py @@ -302,7 +302,7 @@ class WebSocketProxy(websockifyserver.WebSockifyServer): # Last 3 timestamps command was run self.wrap_times = [0, 0, 0] - if self.wrap_cmd: + if self.wrap_cmd and not self.unix_target: wsdir = os.path.dirname(sys.argv[0]) rebinder_path = [os.path.join(wsdir, "..", "lib"), os.path.join(wsdir, "..", "lib", "websockify"), @@ -644,7 +644,7 @@ def websockify_init(): del opts.target_cfg if sys.argv.count('--'): - opts.wrap_cmd = args[1:] + opts.wrap_cmd = args if opts.unix_listen else args[1:] else: opts.wrap_cmd = None