From 37e40a78f2b11563b3545a630911b8c79f3a28bd Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Wed, 5 Jun 2013 15:16:46 +0300 Subject: [PATCH] WebSocketProxy: support non path target_cfg The WebSocketProxy class is usable for creating derived applications with different logic, especially for the target validation. Current code assumes that target is a path while in other implementation it can be object that is loaded at initialization. This change moves the conversion to absolute path into main function, so that the WebSocketProxy class will not make that assumption. Signed-off-by: Alon Bar-Lev --- websockify/websocketproxy.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/websockify/websocketproxy.py b/websockify/websocketproxy.py index f893d1f..c984a5d 100755 --- a/websockify/websocketproxy.py +++ b/websockify/websocketproxy.py @@ -83,9 +83,6 @@ Traffic Legend: "REBIND_OLD_PORT": str(kwargs['listen_port']), "REBIND_NEW_PORT": str(self.target_port)}) - if self.target_cfg: - self.target_cfg = os.path.abspath(self.target_cfg) - websocket.WebSocketServer.__init__(self, *args, **kwargs) def run_wrap_cmd(self): @@ -388,6 +385,10 @@ def websockify_init(): try: opts.target_port = int(opts.target_port) except: parser.error("Error parsing target port") + # Transform to absolute path as daemon may chdir + if opts.target_cfg: + opts.target_cfg = os.path.abspath(opts.target_cfg) + # Create and start the WebSockets proxy server = WebSocketProxy(**opts.__dict__) server.start_server()