From 18d18bd90186a14f4470858e1ef655ce733562de Mon Sep 17 00:00:00 2001 From: DJ2LS <75909252+DJ2LS@users.noreply.github.com> Date: Fri, 18 Nov 2022 14:47:31 +0100 Subject: [PATCH] fix rigctld socket crash --- gui/main.js | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/gui/main.js b/gui/main.js index 1a3ca213..c7f3d9a2 100644 --- a/gui/main.js +++ b/gui/main.js @@ -879,6 +879,9 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{ // CHECK RIGCTLD CONNECTION +// create new socket so we are not reopening every time a new one +var rigctld_connection = new net.Socket(); +var rigctld_connection_state = false; ipcMain.on('request-check-rigctld',(event, data)=>{ try{ @@ -887,24 +890,36 @@ ipcMain.on('request-check-rigctld',(event, data)=>{ state: "unknown", }; - var rigctld = new net.Socket(); - rigctld.connect(data.port, data.ip) + if(!rigctld_connection_state){ + rigctld_connection = new net.Socket(); + rigctld_connection.connect(data.port, data.ip) + } - rigctld.on('error', function() { + // check if we have created a new socket object + if (typeof(rigctld_connection) != 'undefined') { - Data["state"] = "unknown/stopped - (" + data.ip + ":" + data.port + ")"; - if (win !== null && win !== ''){ - win.webContents.send('action-check-rigctld', Data); - } - }) - - rigctld.on('connect', function() { + rigctld_connection.on('connect', function() { + rigctld_connection_state = true; Data["state"] = "connection possible - (" + data.ip + ":" + data.port + ")"; if (win !== null && win !== ''){ win.webContents.send('action-check-rigctld', Data); } }) + rigctld_connection.on('error', function() { + rigctld_connection_state = false; + Data["state"] = "unknown/stopped - (" + data.ip + ":" + data.port + ")"; + if (win !== null && win !== ''){ + win.webContents.send('action-check-rigctld', Data); + } + }) + + rigctld_connection.on('end', function() { + rigctld_connection_state = false; + }) + + } + } catch(e) { console.log(e) }