diff --git a/agents/MeshCmd-signed.exe b/agents/MeshCmd-signed.exe index df5c05a1..c742c43a 100644 Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ diff --git a/agents/MeshCmd64-signed.exe b/agents/MeshCmd64-signed.exe index 4c966dcc..779e0c0c 100644 Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ diff --git a/agents/MeshService-signed.exe b/agents/MeshService-signed.exe index 3d071315..da9c197f 100644 Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ diff --git a/agents/MeshService.exe b/agents/MeshService.exe index 1d99b000..1af55b78 100644 Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ diff --git a/agents/MeshService64-signed.exe b/agents/MeshService64-signed.exe index d8a96bd8..6d125f61 100644 Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ diff --git a/agents/MeshService64.exe b/agents/MeshService64.exe index a502b347..9b4ce781 100644 Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ diff --git a/agents/agents-new/MeshCmd-signed.exe b/agents/agents-new/MeshCmd-signed.exe new file mode 100644 index 00000000..c742c43a Binary files /dev/null and b/agents/agents-new/MeshCmd-signed.exe differ diff --git a/agents/agents-new/MeshCmd64-signed.exe b/agents/agents-new/MeshCmd64-signed.exe new file mode 100644 index 00000000..779e0c0c Binary files /dev/null and b/agents/agents-new/MeshCmd64-signed.exe differ diff --git a/agents/agents-new/MeshService-signed.exe b/agents/agents-new/MeshService-signed.exe new file mode 100644 index 00000000..da9c197f Binary files /dev/null and b/agents/agents-new/MeshService-signed.exe differ diff --git a/agents/agents-new/MeshService.exe b/agents/agents-new/MeshService.exe new file mode 100644 index 00000000..1af55b78 Binary files /dev/null and b/agents/agents-new/MeshService.exe differ diff --git a/agents/agents-new/MeshService64-signed.exe b/agents/agents-new/MeshService64-signed.exe new file mode 100644 index 00000000..6d125f61 Binary files /dev/null and b/agents/agents-new/MeshService64-signed.exe differ diff --git a/agents/agents-new/MeshService64.exe b/agents/agents-new/MeshService64.exe new file mode 100644 index 00000000..9b4ce781 Binary files /dev/null and b/agents/agents-new/MeshService64.exe differ diff --git a/agents/agents-old/MeshCmd-signed.exe b/agents/agents-old/MeshCmd-signed.exe new file mode 100644 index 00000000..df5c05a1 Binary files /dev/null and b/agents/agents-old/MeshCmd-signed.exe differ diff --git a/agents/agents-old/MeshCmd64-signed.exe b/agents/agents-old/MeshCmd64-signed.exe new file mode 100644 index 00000000..4c966dcc Binary files /dev/null and b/agents/agents-old/MeshCmd64-signed.exe differ diff --git a/agents/agents-old/MeshService-signed.exe b/agents/agents-old/MeshService-signed.exe new file mode 100644 index 00000000..3d071315 Binary files /dev/null and b/agents/agents-old/MeshService-signed.exe differ diff --git a/agents/agents-old/MeshService.exe b/agents/agents-old/MeshService.exe new file mode 100644 index 00000000..1d99b000 Binary files /dev/null and b/agents/agents-old/MeshService.exe differ diff --git a/agents/agents-old/MeshService64-signed.exe b/agents/agents-old/MeshService64-signed.exe new file mode 100644 index 00000000..d8a96bd8 Binary files /dev/null and b/agents/agents-old/MeshService64-signed.exe differ diff --git a/agents/agents-old/MeshService64.exe b/agents/agents-old/MeshService64.exe new file mode 100644 index 00000000..a502b347 Binary files /dev/null and b/agents/agents-old/MeshService64.exe differ diff --git a/agents/meshagent_aarch64 b/agents/agents-old/meshagent_aarch64 similarity index 100% rename from agents/meshagent_aarch64 rename to agents/agents-old/meshagent_aarch64 diff --git a/agents/meshagent_aarch64-cortex-a53 b/agents/agents-old/meshagent_aarch64-cortex-a53 similarity index 100% rename from agents/meshagent_aarch64-cortex-a53 rename to agents/agents-old/meshagent_aarch64-cortex-a53 diff --git a/agents/meshagent_arm b/agents/agents-old/meshagent_arm similarity index 100% rename from agents/meshagent_arm rename to agents/agents-old/meshagent_arm diff --git a/agents/meshagent_arm-linaro b/agents/agents-old/meshagent_arm-linaro similarity index 100% rename from agents/meshagent_arm-linaro rename to agents/agents-old/meshagent_arm-linaro diff --git a/agents/meshagent_armhf b/agents/agents-old/meshagent_armhf similarity index 100% rename from agents/meshagent_armhf rename to agents/agents-old/meshagent_armhf diff --git a/agents/meshagent_armhf2 b/agents/agents-old/meshagent_armhf2 similarity index 100% rename from agents/meshagent_armhf2 rename to agents/agents-old/meshagent_armhf2 diff --git a/agents/meshagent_freebsd_x86-64 b/agents/agents-old/meshagent_freebsd_x86-64 similarity index 100% rename from agents/meshagent_freebsd_x86-64 rename to agents/agents-old/meshagent_freebsd_x86-64 diff --git a/agents/meshagent_linux-armada370-hf b/agents/agents-old/meshagent_linux-armada370-hf similarity index 100% rename from agents/meshagent_linux-armada370-hf rename to agents/agents-old/meshagent_linux-armada370-hf diff --git a/agents/meshagent_mips b/agents/agents-old/meshagent_mips similarity index 100% rename from agents/meshagent_mips rename to agents/agents-old/meshagent_mips diff --git a/agents/meshagent_mips24kc b/agents/agents-old/meshagent_mips24kc similarity index 100% rename from agents/meshagent_mips24kc rename to agents/agents-old/meshagent_mips24kc diff --git a/agents/meshagent_mipsel24kc b/agents/agents-old/meshagent_mipsel24kc similarity index 100% rename from agents/meshagent_mipsel24kc rename to agents/agents-old/meshagent_mipsel24kc diff --git a/agents/meshagent_openbsd_x86-64 b/agents/agents-old/meshagent_openbsd_x86-64 similarity index 100% rename from agents/meshagent_openbsd_x86-64 rename to agents/agents-old/meshagent_openbsd_x86-64 diff --git a/agents/meshagent_openwrt_x86_64 b/agents/agents-old/meshagent_openwrt_x86_64 similarity index 100% rename from agents/meshagent_openwrt_x86_64 rename to agents/agents-old/meshagent_openwrt_x86_64 diff --git a/agents/meshagent_osx-arm-64 b/agents/agents-old/meshagent_osx-arm-64 similarity index 100% rename from agents/meshagent_osx-arm-64 rename to agents/agents-old/meshagent_osx-arm-64 diff --git a/agents/meshagent_osx-universal-64 b/agents/agents-old/meshagent_osx-universal-64 similarity index 100% rename from agents/meshagent_osx-universal-64 rename to agents/agents-old/meshagent_osx-universal-64 diff --git a/agents/meshagent_osx-x86-64 b/agents/agents-old/meshagent_osx-x86-64 similarity index 100% rename from agents/meshagent_osx-x86-64 rename to agents/agents-old/meshagent_osx-x86-64 diff --git a/agents/meshagent_pogo b/agents/agents-old/meshagent_pogo similarity index 100% rename from agents/meshagent_pogo rename to agents/agents-old/meshagent_pogo diff --git a/agents/meshagent_poky b/agents/agents-old/meshagent_poky similarity index 100% rename from agents/meshagent_poky rename to agents/agents-old/meshagent_poky diff --git a/agents/meshagent_poky64 b/agents/agents-old/meshagent_poky64 similarity index 100% rename from agents/meshagent_poky64 rename to agents/agents-old/meshagent_poky64 diff --git a/agents/meshagent_x86 b/agents/agents-old/meshagent_x86 similarity index 100% rename from agents/meshagent_x86 rename to agents/agents-old/meshagent_x86 diff --git a/agents/meshagent_x86-64 b/agents/agents-old/meshagent_x86-64 similarity index 100% rename from agents/meshagent_x86-64 rename to agents/agents-old/meshagent_x86-64 diff --git a/agents/meshagent_x86-64_nokvm b/agents/agents-old/meshagent_x86-64_nokvm similarity index 100% rename from agents/meshagent_x86-64_nokvm rename to agents/agents-old/meshagent_x86-64_nokvm diff --git a/agents/meshagent_x86_nokvm b/agents/agents-old/meshagent_x86_nokvm similarity index 100% rename from agents/meshagent_x86_nokvm rename to agents/agents-old/meshagent_x86_nokvm diff --git a/meshipkvm.js b/meshipkvm.js index ddc26d5f..55015604 100644 --- a/meshipkvm.js +++ b/meshipkvm.js @@ -110,6 +110,19 @@ function CreateIPKVMManager(parent) { if (sender.firmwareVersion) { console.log('FirmwareVersion:', sender.firmwareVersion); } } */ + + if (state == 0) { + // Disconnect all nodes for this device group + for (var i in sender.ports) { + const port = sender.ports[i]; + const nodeid = generateIpKvmNodeId(sender.meshid, port.PortId, sender.domainid); + if (obj.managedPorts[nodeid] != null) { + parent.ClearConnectivityState(sender.meshid, nodeid, 1, null, null); + delete obj.managedPorts[nodeid]; + } + } + } + } // Called when a KVM device changes state @@ -343,6 +356,7 @@ function CreateRaritanKX3Manager(parent, hostname, port, username, password) { if ((newState == 2) && (updateTimer == null)) { updateTimer = setInterval(obj.update, 10000); } if ((newState != 2) && (updateTimer != null)) { clearInterval(updateTimer); updateTimer = null; } if ((newState == 0) && (obj.started == true) && (retryTimer == null)) { retryTimer = setTimeout(connect, 20000); } + if (newState == 0) { obj.ports = []; obj.portCount = 0; obj.deviceCount = 0; } } function connect() { @@ -753,6 +767,7 @@ function CreateWebPowerSwitch(parent, hostname, port, username, password) { obj.started = false; if (retryTimer != null) { clearTimeout(retryTimer); retryTimer = null; } setState(0); + obj.ports = []; } function setState(newState) { @@ -762,10 +777,12 @@ function CreateWebPowerSwitch(parent, hostname, port, username, password) { if ((newState == 2) && (updateTimer == null)) { updateTimer = setInterval(obj.update, 10000); } if ((newState != 2) && (updateTimer != null)) { clearInterval(updateTimer); updateTimer = null; } if ((newState == 0) && (obj.started == true) && (retryTimer == null)) { retryTimer = setTimeout(connect, 20000); } + if (newState == 0) { obj.ports = []; obj.portCount = 0; } } function connect() { if (obj.state != 0) return; + if (retryTimer != null) { clearTimeout(retryTimer); retryTimer = null; } setState(1); // 1 = Connecting obj.update(); } @@ -891,11 +908,11 @@ function CreateWebPowerSwitch(parent, hostname, port, username, password) { function parseChallenge(header) { header = header.replace('qop="auth,auth-int"', 'qop="auth"'); // We don't support auth-int yet, easiest way to get rid of it. - var prefix = 'Digest '; - var challenge = header.substr(header.indexOf(prefix) + prefix.length); - var parts = challenge.split(','); - var length = parts.length; - var params = {}; + const prefix = 'Digest '; + const challenge = header.substr(header.indexOf(prefix) + prefix.length); + const parts = challenge.split(','); + const length = parts.length; + const params = {}; for (var i = 0; i < length; i++) { var part = parts[i].match(/^\s*?([a-zA-Z0-0]+)="(.*)"\s*?$/); if (part && part.length > 2) { params[part[1]] = part[2]; } @@ -904,7 +921,7 @@ function CreateWebPowerSwitch(parent, hostname, port, username, password) { } function renderDigest(params) { - var parts = []; + const parts = []; for (var i in params) { parts.push(i + '="' + params[i] + '"'); } return 'Digest ' + parts.join(', '); }