From 386c706852bf1273d9e16051c4fe96c8f33f7bcc Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 8 Jul 2021 11:06:12 -0700 Subject: [PATCH] Fix for multi-domain servers. --- FileViewer.cs | 3 ++- KVMControl.cs | 2 +- KVMViewer.cs | 5 +++-- MeshMapper.cs | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/FileViewer.cs b/FileViewer.cs index a3e8ee5..1d5d7e5 100644 --- a/FileViewer.cs +++ b/FileViewer.cs @@ -335,7 +335,8 @@ namespace MeshCentralRouter bytesOutCompressed = 0; state = 2; - string u = "*/meshrelay.ashx?p=5&nodeid=" + node.nodeid + "&id=" + randomIdHex + "&rauth=" + server.rauthCookie; + + string u = "*" + server.wsurl.AbsolutePath.Replace("control.ashx", "meshrelay.ashx") + "?p=5&nodeid=" + node.nodeid + "&id=" + randomIdHex + "&rauth=" + server.rauthCookie; server.sendCommand("{ \"action\": \"msg\", \"type\": \"tunnel\", \"nodeid\": \"" + node.nodeid + "\", \"value\": \"" + u.ToString() + "\", \"usage\": 5 }"); displayMessage(null); break; diff --git a/KVMControl.cs b/KVMControl.cs index a191e66..1075cde 100644 --- a/KVMControl.cs +++ b/KVMControl.cs @@ -151,7 +151,7 @@ namespace MeshCentralRouter public void AttachKeyboard() { - Console.WriteLine(isHookWanted); + //Console.WriteLine(isHookWanted); if (!keyboardIsAttached && isHookWanted) { ControlHook.AttachKeyboardHook(SendKey); diff --git a/KVMViewer.cs b/KVMViewer.cs index cc5c082..d8519c2 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -215,7 +215,8 @@ namespace MeshCentralRouter bytesOutCompressed = 0; state = 2; - string u = "*/meshrelay.ashx?p=2&nodeid=" + node.nodeid + "&id=" + randomIdHex + "&rauth=" + server.rauthCookie; + + string u = "*" + server.wsurl.AbsolutePath.Replace("control.ashx", "meshrelay.ashx") + "?p=2&nodeid=" + node.nodeid + "&id=" + randomIdHex + "&rauth=" + server.rauthCookie; server.sendCommand("{ \"action\": \"msg\", \"type\": \"tunnel\", \"nodeid\": \"" + node.nodeid + "\", \"value\": \"" + u.ToString() + "\", \"usage\": 2 }"); displayMessage(null); break; @@ -320,7 +321,7 @@ namespace MeshCentralRouter private void UpdateStatus() { - if (this.InvokeRequired) { this.Invoke(new UpdateStatusHandler(UpdateStatus)); return; } + if (this.InvokeRequired) { try { this.Invoke(new UpdateStatusHandler(UpdateStatus)); } catch (Exception) { } return; } //if (kvmControl == null) return; switch (state) diff --git a/MeshMapper.cs b/MeshMapper.cs index 7f2417c..2a9476f 100644 --- a/MeshMapper.cs +++ b/MeshMapper.cs @@ -347,7 +347,7 @@ namespace MeshCentralRouter TcpClient client = (TcpClient)sender.tag; if (client != null) { sender.Pause(); // Pause reading from the websocket until the data is sent on the TCP client - client.GetStream().BeginWrite(data, offset, length, new AsyncCallback(ClientEndWrite), sender); + try { client.GetStream().BeginWrite(data, offset, length, new AsyncCallback(ClientEndWrite), sender); } catch (Exception) { } } } if ((sender.tag.GetType() == typeof(UdpClient)) && (sender.endpoint != null))