From 8b8aafbee6e82fdb91b591cbccf436c42dc03508 Mon Sep 17 00:00:00 2001 From: echicken <echicken@bbs.electronicchicken.com> Date: Fri, 24 Feb 2023 03:52:19 +0000 Subject: [PATCH] Write websocket client IP address to temp file. Scripts running on upstream (terminal) server can find actual client IP in: system.temp_path + 'sbbs-ws-' + client.socket.remote_port + '.ip' --- exec/websocketservice.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/exec/websocketservice.js b/exec/websocketservice.js index 66a11cf356..1958eefac3 100644 --- a/exec/websocketservice.js +++ b/exec/websocketservice.js @@ -83,6 +83,7 @@ try { FServerSocket = new Socket(); log(LOG_DEBUG, "Connecting to " + TargetHostname + ":" + TargetPort); if (FServerSocket.connect(TargetHostname, TargetPort)) { + // Variables we'll use in the loop var DoYield = true; var ClientData = []; @@ -102,6 +103,12 @@ try { FServerSocket.send(hapstr); } + var ipFile = new File (system.temp_path + 'sbbs-ws-' + FServerSocket.local_port + '.ip'); + if (ipFile.open('w')) { + ipFile.write(client.ip_address); + ipFile.close(); + } + // Loop while we're still connected on both ends while ((client.socket.is_connected) && (FServerSocket.is_connected)) { // Should we yield or not (default true, but disable if we had line activity) @@ -129,6 +136,7 @@ try { } if (!client.socket.is_connected) log(LOG_DEBUG, 'Client socket no longer connected'); if (!FServerSocket.is_connected) log(LOG_DEBUG, 'Server socket no longer connected'); + ipFile.remove(); } else { // FServerSocket.connect() failed log(LOG_ERR, "Error " + FServerSocket.error + " connecting to server at " + TargetHostname + ":" + TargetPort); -- GitLab