1
0
mirror of https://github.com/Ylianst/MeshCentralRouter synced 2025-12-06 00:13:33 +00:00

Merge branch 'master' into wol

This commit is contained in:
Ylian Saint-Hilaire
2023-10-07 12:09:10 -07:00
committed by GitHub
10 changed files with 150 additions and 93 deletions

View File

@@ -1413,7 +1413,8 @@ namespace MeshCentralRouter
transferStatusForm.transferCompleted();
}
remoteFolder = strDownloadRel; // Zurücksetzen
if (downloadActive)
remoteFolder = strDownloadRel; // Zurücksetzen
remoteRefresh();
}

View File

@@ -568,13 +568,24 @@ namespace MeshCentralRouter
if (c >= 32) { SendUnicodeKey(c, 0); }
}
private static readonly Keys[] ignoreKeys = {
// 0-9 (KeyCode: 48-57)
Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9,
// NumPad 0-9 (KeyCode: 96-105)
Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9,
// Special-Keys
Keys.Space, Keys.Divide, Keys.Multiply, Keys.Subtract, Keys.Add, Keys.Decimal,
// Oem-Keys
Keys.Oem1, Keys.Oem2, Keys.Oem3, Keys.Oem4, Keys.Oem5, Keys.Oem6, Keys.Oem7, Keys.Oem8, Keys.Oem102, Keys.OemSemicolon, Keys.Oemplus, Keys.Oemcomma,
Keys.OemMinus, Keys.OemPeriod, Keys.OemQuestion, Keys.Oemtilde, Keys.OemOpenBrackets, Keys.OemPipe, Keys.OemCloseBrackets, Keys.OemQuotes
};
private void SendKey(KeyEventArgs e, byte action)
{
//if (state != ConnectState.Connected) return;
if (remoteKeyboardMap == true) { SendKey((byte)e.KeyCode, action); return; } // Use old key system that uses the remote keyboard mapping.
string keycode = e.KeyCode.ToString();
if ((action == 0) && (e.Control == false) && (e.Alt == false) && (((e.KeyValue >= 48) && (e.KeyValue <= 57))|| ((e.KeyValue >= 96) && (e.KeyValue <= 105)) || (keycode.Length == 1) || (keycode.StartsWith("Oem") == true))) return;
if ((action == 0) && (e.Control == false) && (e.Alt == false) && (Array.IndexOf(ignoreKeys, e.KeyCode) > -1 || (keycode.Length == 1))) return;
if ((e.Control == true) || (e.Alt == true)) { killNextKeyPress = DateTime.Now.Ticks; }
SendKey((byte)e.KeyCode, action);
e.Handled = true;

View File

@@ -51,6 +51,7 @@ namespace MeshCentralRouter
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.updateTimer = new System.Windows.Forms.Timer(this.components);
this.topPanel = new System.Windows.Forms.Panel();
this.openRemoteFilesButton = new System.Windows.Forms.Button();
this.extraButtonsPanel = new System.Windows.Forms.Panel();
this.splitButton = new System.Windows.Forms.Button();
this.clipOutboundButton = new System.Windows.Forms.Button();
@@ -104,6 +105,7 @@ namespace MeshCentralRouter
// topPanel
//
this.topPanel.BackColor = System.Drawing.SystemColors.Control;
this.topPanel.Controls.Add(this.openRemoteFilesButton);
this.topPanel.Controls.Add(this.extraButtonsPanel);
this.topPanel.Controls.Add(this.splitButton);
this.topPanel.Controls.Add(this.clipOutboundButton);
@@ -116,6 +118,14 @@ namespace MeshCentralRouter
resources.ApplyResources(this.topPanel, "topPanel");
this.topPanel.Name = "topPanel";
//
// openRemoteFilesButton
//
resources.ApplyResources(this.openRemoteFilesButton, "openRemoteFilesButton");
this.openRemoteFilesButton.Name = "openRemoteFilesButton";
this.openRemoteFilesButton.TabStop = false;
this.openRemoteFilesButton.UseVisualStyleBackColor = true;
this.openRemoteFilesButton.Click += new System.EventHandler(this.openRemoteFilesButton_Click);
//
// extraButtonsPanel
//
resources.ApplyResources(this.extraButtonsPanel, "extraButtonsPanel");
@@ -298,6 +308,7 @@ namespace MeshCentralRouter
private Button splitButton;
private Panel extraButtonsPanel;
private ImageList displaySelectorImageList;
private Button openRemoteFilesButton;
}
}

View File

@@ -397,6 +397,7 @@ namespace MeshCentralRouter
}
cadButton.Enabled = (state == 3);
openRemoteFilesButton.Enabled = (state == 3 && (node.agentcaps & 4) != 0);
if ((kvmControl.AutoSendClipboard) && ((server.features2 & 0x1000) == 0)) // 0x1000 Clipboard Set
{
clipInboundButton.Visible = false;
@@ -755,6 +756,20 @@ namespace MeshCentralRouter
}
}
private void openRemoteFilesButton_Click(object sender, EventArgs e)
{
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
if (node.fileViewer == null)
{
node.fileViewer = new FileViewer(server, node);
node.fileViewer.Show();
node.fileViewer.MenuItemConnect_Click(null, null);
}
else
{
node.fileViewer.Focus();
}
}
}
}

View File

@@ -122,7 +122,7 @@
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="mainToolStripStatusLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>1372, 20</value>
<value>1029, 17</value>
</data>
<data name="mainToolStripStatusLabel.Text" xml:space="preserve">
<value>---</value>
@@ -131,7 +131,7 @@
<value>MiddleLeft</value>
</data>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 20</value>
<value>13, 17</value>
</data>
<data name="toolStripStatusLabel1.Text" xml:space="preserve">
<value>v</value>
@@ -141,14 +141,10 @@
<value>False</value>
</data>
<data name="mainStatusStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 897</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="mainStatusStrip.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>1, 0, 19, 0</value>
<value>0, 727</value>
</data>
<data name="mainStatusStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>1392, 25</value>
<value>1044, 22</value>
</data>
<data name="mainStatusStrip.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@@ -171,14 +167,48 @@
<metadata name="updateTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>154, 17</value>
</metadata>
<data name="openRemoteFilesButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="openRemoteFilesButton.Location" type="System.Drawing.Point, System.Drawing">
<value>192, 3</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="openRemoteFilesButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value>
</data>
<data name="openRemoteFilesButton.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 26</value>
</data>
<data name="openRemoteFilesButton.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="openRemoteFilesButton.Text" xml:space="preserve">
<value>Remote Files</value>
</data>
<data name="&gt;&gt;openRemoteFilesButton.Name" xml:space="preserve">
<value>openRemoteFilesButton</value>
</data>
<data name="&gt;&gt;openRemoteFilesButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;openRemoteFilesButton.Parent" xml:space="preserve">
<value>topPanel</value>
</data>
<data name="&gt;&gt;openRemoteFilesButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="extraButtonsPanel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="extraButtonsPanel.Location" type="System.Drawing.Point, System.Drawing">
<value>383, 4</value>
<value>380, 2</value>
</data>
<data name="extraButtonsPanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value>
</data>
<data name="extraButtonsPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>658, 32</value>
<value>401, 27</value>
</data>
<data name="extraButtonsPanel.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@@ -193,7 +223,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;extraButtonsPanel.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<data name="splitButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@@ -202,13 +232,10 @@
<value>NoControl</value>
</data>
<data name="splitButton.Location" type="System.Drawing.Point, System.Drawing">
<value>1048, 4</value>
</data>
<data name="splitButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>786, 3</value>
</data>
<data name="splitButton.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 32</value>
<value>89, 26</value>
</data>
<data name="splitButton.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@@ -229,7 +256,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;splitButton.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="clipOutboundButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@@ -241,16 +268,13 @@
<value>NoControl</value>
</data>
<data name="clipOutboundButton.Location" type="System.Drawing.Point, System.Drawing">
<value>1175, 4</value>
</data>
<data name="clipOutboundButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>881, 3</value>
</data>
<data name="clipOutboundButton.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 32</value>
<value>30, 26</value>
</data>
<data name="clipOutboundButton.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
<value>4</value>
</data>
<data name="&gt;&gt;clipOutboundButton.Name" xml:space="preserve">
<value>clipOutboundButton</value>
@@ -262,7 +286,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;clipOutboundButton.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="clipInboundButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@@ -274,16 +298,13 @@
<value>NoControl</value>
</data>
<data name="clipInboundButton.Location" type="System.Drawing.Point, System.Drawing">
<value>1223, 4</value>
</data>
<data name="clipInboundButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>917, 3</value>
</data>
<data name="clipInboundButton.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 32</value>
<value>30, 26</value>
</data>
<data name="clipInboundButton.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
<value>5</value>
</data>
<metadata name="mainToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>399, 17</value>
@@ -301,7 +322,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;clipInboundButton.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="statsButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@@ -310,13 +331,10 @@
<value>NoControl</value>
</data>
<data name="statsButton.Location" type="System.Drawing.Point, System.Drawing">
<value>1319, 4</value>
</data>
<data name="statsButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>989, 3</value>
</data>
<data name="statsButton.Size" type="System.Drawing.Size, System.Drawing">
<value>69, 32</value>
<value>52, 26</value>
</data>
<data name="statsButton.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@@ -334,22 +352,19 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;statsButton.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="settingsButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="settingsButton.Location" type="System.Drawing.Point, System.Drawing">
<value>257, 4</value>
</data>
<data name="settingsButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>286, 3</value>
</data>
<data name="settingsButton.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 32</value>
<value>89, 26</value>
</data>
<data name="settingsButton.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
<value>3</value>
</data>
<data name="settingsButton.Text" xml:space="preserve">
<value>Settings</value>
@@ -364,7 +379,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;settingsButton.ZOrder" xml:space="preserve">
<value>5</value>
<value>6</value>
</data>
<data name="zoomButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
@@ -373,13 +388,10 @@
<value>NoControl</value>
</data>
<data name="zoomButton.Location" type="System.Drawing.Point, System.Drawing">
<value>1271, 4</value>
</data>
<data name="zoomButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>953, 3</value>
</data>
<data name="zoomButton.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 32</value>
<value>30, 26</value>
</data>
<data name="zoomButton.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@@ -394,7 +406,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;zoomButton.ZOrder" xml:space="preserve">
<value>6</value>
<value>7</value>
</data>
<data name="cadButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
@@ -403,13 +415,10 @@
<value>NoControl</value>
</data>
<data name="cadButton.Location" type="System.Drawing.Point, System.Drawing">
<value>131, 4</value>
</data>
<data name="cadButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>98, 3</value>
</data>
<data name="cadButton.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 32</value>
<value>89, 26</value>
</data>
<data name="cadButton.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -427,31 +436,31 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;cadButton.ZOrder" xml:space="preserve">
<value>7</value>
<value>8</value>
</data>
<metadata name="consentContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>518, 17</value>
</metadata>
<data name="askConsentBarToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>198, 24</value>
<value>171, 22</value>
</data>
<data name="askConsentBarToolStripMenuItem.Text" xml:space="preserve">
<value>Ask Consent + Bar</value>
</data>
<data name="askConsentToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>198, 24</value>
<value>171, 22</value>
</data>
<data name="askConsentToolStripMenuItem.Text" xml:space="preserve">
<value>Ask Consent</value>
</data>
<data name="privacyBarToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>198, 24</value>
<value>171, 22</value>
</data>
<data name="privacyBarToolStripMenuItem.Text" xml:space="preserve">
<value>Privacy Bar</value>
</data>
<data name="consentContextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>199, 76</value>
<value>172, 70</value>
</data>
<data name="&gt;&gt;consentContextMenuStrip.Name" xml:space="preserve">
<value>consentContextMenuStrip</value>
@@ -463,13 +472,10 @@
<value>NoControl</value>
</data>
<data name="connectButton.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 4</value>
</data>
<data name="connectButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>3, 3</value>
</data>
<data name="connectButton.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 32</value>
<value>89, 26</value>
</data>
<data name="connectButton.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -487,7 +493,7 @@
<value>topPanel</value>
</data>
<data name="&gt;&gt;connectButton.ZOrder" xml:space="preserve">
<value>8</value>
<value>9</value>
</data>
<data name="topPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
@@ -495,11 +501,8 @@
<data name="topPanel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="topPanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="topPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>1392, 39</value>
<value>1044, 32</value>
</data>
<data name="topPanel.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
@@ -529,13 +532,10 @@
<value>NoControl</value>
</data>
<data name="consoleMessage.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 73</value>
</data>
<data name="consoleMessage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
<value>12, 59</value>
</data>
<data name="consoleMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 31</value>
<value>70, 25</value>
</data>
<data name="consoleMessage.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
@@ -565,13 +565,10 @@
<value>Fill</value>
</data>
<data name="resizeKvmControl.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 39</value>
</data>
<data name="resizeKvmControl.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
<value>0, 32</value>
</data>
<data name="resizeKvmControl.Size" type="System.Drawing.Size, System.Drawing">
<value>1392, 858</value>
<value>1044, 695</value>
</data>
<data name="resizeKvmControl.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@@ -580,7 +577,7 @@
<value>resizeKvmControl</value>
</data>
<data name="&gt;&gt;resizeKvmControl.Type" xml:space="preserve">
<value>MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8096.29519, Culture=neutral, PublicKeyToken=null</value>
<value>MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8475.33354, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;resizeKvmControl.Parent" xml:space="preserve">
<value>$this</value>
@@ -596,7 +593,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADs
DgAAAk1TRnQBSQFMAgEBBAEAARABAAEQAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA
DgAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEQBgABEP8A/wD/AP8A/wD/AP8A/wAiAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGl
ARQB9wFeEAAB9wFeAaUBFAGlARQBpQEUAaUBFAGlARQBpQEUAfcBXhAAAfcBXgGlARQBpQEUAaUBFAGl
ARQBpQEUAaUBFAH3AV4QAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGlARQB9wFeEAAB3gF7ARgBYwFr
@@ -666,10 +663,10 @@
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>8, 16</value>
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1392, 922</value>
<value>1044, 749</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -1097,7 +1094,7 @@
</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 2, 3, 2</value>
<value>2, 2, 2, 2</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>

View File

@@ -526,7 +526,10 @@ namespace MeshCentralRouter
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// ignore close-to-tray on debug-builds
#if !DEBUG
if ((notifyIcon.Visible == true) && (currentPanel == 4) && (forceExit == false)) { e.Cancel = true; Visible = false; }
#endif
Settings.SetRegValue("Location", Location.X + "," + Location.Y);
}
@@ -1709,13 +1712,22 @@ namespace MeshCentralRouter
public void QuickMap(int protocol, int port, int appId, NodeClass node)
{
NodeClass tmpNode = node;
if (node.mesh.relayid != null)
{
if (!meshcentral.nodes.ContainsKey(node.mesh.relayid))
return;
tmpNode = meshcentral.nodes[node.mesh.relayid];
}
// See if we already have the right port mapping
foreach (Control c in mapPanel.Controls)
{
if (c.GetType() == typeof(MapUserControl))
{
MapUserControl cc = (MapUserControl)c;
if ((cc.protocol == protocol) && (cc.remotePort == port) && (cc.appId == appId) && (cc.node == node))
if ((cc.remoteIP == node.host) && (cc.protocol == protocol) && (cc.remotePort == port) && (cc.appId == appId) && (cc.node == tmpNode))
{
// Found a match
cc.appButton_Click(this, null);
@@ -1729,11 +1741,17 @@ namespace MeshCentralRouter
map.xdebug = debug;
map.inaddrany = false; // Loopback only
map.protocol = protocol; // 1 = TCP, 2 = UDP
if (node.mesh.relayid != null)
{
map.name = node.name;
map.remoteIP = node.host;
}
map.localPort = 0; // Any
map.remotePort = port; // HTTP
map.appId = appId; // 0 = Custom, 1 = HTTP, 2 = HTTPS, 3 = RDP, 4 = PuTTY, 5 = WinSCP
map.appIdStr = null;
map.node = node;
map.node = tmpNode;
if (authLoginUrl != null) { map.host = authLoginUrl.Host + ":" + ((authLoginUrl.Port > 0) ? authLoginUrl.Port : 443) + authLoginUrl.AbsolutePath.Replace("/control.ashx", ""); } else { map.host = serverNameComboBox.Text; }
map.certhash = meshcentral.wshash;
map.parent = this;

View File

@@ -494,6 +494,7 @@ namespace MeshCentralRouter
m.meshid = (string)mesh["_id"];
m.name = (string)mesh["name"];
if (mesh.ContainsKey("desc")) { m.desc = (string)mesh["desc"]; }
if (mesh.ContainsKey("relayid")) { m.relayid = (string)mesh["relayid"]; }
m.rights = 0;
m.links = new Dictionary<string, ulong>();
@@ -602,6 +603,7 @@ namespace MeshCentralRouter
}
n.name = (string)node["name"];
n.meshid = meshid;
if (node.ContainsKey("host")) { n.host = (string)node["host"]; }
if (node.ContainsKey("mtype"))
{

View File

@@ -167,7 +167,7 @@ namespace MeshCentralRouter
TcpClient client = null;
try
{
client = listener.EndAcceptTcpClient(ar);
client = listener?.EndAcceptTcpClient(ar);
}
catch (Exception) { exit = true; }
@@ -179,7 +179,7 @@ namespace MeshCentralRouter
try
{
listener.BeginAcceptTcpClient(new AsyncCallback(AcceptTcpClientSink), null);
listener?.BeginAcceptTcpClient(new AsyncCallback(AcceptTcpClientSink), null);
}
catch (Exception) { exit = true; }
}

View File

@@ -25,6 +25,7 @@ namespace MeshCentralRouter
public int icon;
public string nodeid;
public string meshid;
public string host;
public int agentid;
public int agentcaps;
public int conn;
@@ -60,6 +61,7 @@ namespace MeshCentralRouter
public string name;
public string meshid;
public string desc;
public string relayid;
public int type;
public ulong rights;
public Dictionary<string, ulong> links;

View File

@@ -270,10 +270,10 @@ namespace MeshCentralRouter
Uri proxyUri = Win32Api.GetProxy(url);
string userCreds = proxyUri.UserInfo;
string basicAuth = "";
if (userCreds.Length > 0)
if (proxyUri?.UserInfo != null)
{
// Base64 encode for basic authentication
userCreds = System.Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(userCreds));
string userCreds = System.Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(proxyUri.UserInfo));
basicAuth = "\r\nProxy-Authorization: Basic " + userCreds;
}