mirror of
https://github.com/Ylianst/MeshCentralRouter
synced 2025-12-06 00:13:33 +00:00
Updated UI syle to handle many more devices.
This commit is contained in:
@@ -13,6 +13,7 @@ namespace MeshCentralRouter
|
||||
public partial class AddPortMapForm : Form
|
||||
{
|
||||
private MeshCentralServer meshcentral;
|
||||
private NodeClass selectedNode = null;
|
||||
|
||||
public AddPortMapForm(MeshCentralServer meshcentral)
|
||||
{
|
||||
@@ -25,34 +26,48 @@ namespace MeshCentralRouter
|
||||
public int getRemotePort() { return (int)remoteNumericUpDown.Value; }
|
||||
public int getAppId() { return (int)appComboBox.SelectedIndex; }
|
||||
public NodeClass getNode() { return (NodeClass)nodeComboBox.SelectedItem; }
|
||||
public void setNode(NodeClass node) { selectedNode = node; }
|
||||
|
||||
private void AddPortMapForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Fill the groups
|
||||
groupComboBox.Items.Clear();
|
||||
foreach (string meshid in meshcentral.meshes.Keys)
|
||||
if (selectedNode == null)
|
||||
{
|
||||
MeshClass mesh = meshcentral.meshes[meshid];
|
||||
if (mesh.type == 2)
|
||||
// Fill the groups
|
||||
groupComboBox.Items.Clear();
|
||||
foreach (string meshid in meshcentral.meshes.Keys)
|
||||
{
|
||||
int nodeCount = 0;
|
||||
foreach (string nodeid in meshcentral.nodes.Keys)
|
||||
MeshClass mesh = meshcentral.meshes[meshid];
|
||||
if (mesh.type == 2)
|
||||
{
|
||||
NodeClass node = meshcentral.nodes[nodeid];
|
||||
if ((node.meshid == mesh.meshid) && ((node.conn & 1) != 0)) { nodeCount++; }
|
||||
int nodeCount = 0;
|
||||
foreach (string nodeid in meshcentral.nodes.Keys)
|
||||
{
|
||||
NodeClass node = meshcentral.nodes[nodeid];
|
||||
if ((node.meshid == mesh.meshid) && ((node.conn & 1) != 0)) { nodeCount++; }
|
||||
}
|
||||
if (nodeCount > 0) { groupComboBox.Items.Add(mesh); }
|
||||
}
|
||||
if (nodeCount > 0) { groupComboBox.Items.Add(mesh); }
|
||||
}
|
||||
}
|
||||
|
||||
// Set default selection
|
||||
if (groupComboBox.Items.Count > 0) { groupComboBox.SelectedIndex = 0; }
|
||||
appComboBox.SelectedIndex = 1;
|
||||
fillNodesInDropDown();
|
||||
// Set default selection
|
||||
if (groupComboBox.Items.Count > 0) { groupComboBox.SelectedIndex = 0; }
|
||||
appComboBox.SelectedIndex = 1;
|
||||
fillNodesInDropDown();
|
||||
} else {
|
||||
groupComboBox.Items.Add(selectedNode.mesh);
|
||||
groupComboBox.SelectedIndex = 0;
|
||||
groupComboBox.Enabled = false;
|
||||
nodeComboBox.Items.Add(selectedNode);
|
||||
nodeComboBox.SelectedIndex = 0;
|
||||
nodeComboBox.Enabled = false;
|
||||
appComboBox.SelectedIndex = 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void fillNodesInDropDown()
|
||||
{
|
||||
if (selectedNode != null) return;
|
||||
|
||||
MeshClass mesh = (MeshClass)groupComboBox.SelectedItem;
|
||||
|
||||
// Fill the nodes dropdown
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace MeshCentralRouter
|
||||
public partial class AddRelayMapForm : Form
|
||||
{
|
||||
private MeshCentralServer meshcentral;
|
||||
private NodeClass selectedNode = null;
|
||||
|
||||
public AddRelayMapForm(MeshCentralServer meshcentral)
|
||||
{
|
||||
@@ -28,32 +29,47 @@ namespace MeshCentralRouter
|
||||
public string getRemoteIP() { return remoteIpTextBox.Text; }
|
||||
public int getAppId() { return (int)appComboBox.SelectedIndex; }
|
||||
public NodeClass getNode() { return (NodeClass)nodeComboBox.SelectedItem; }
|
||||
public void setNode(NodeClass node) { selectedNode = node; }
|
||||
|
||||
private void AddRelayMapForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Fill the groups
|
||||
groupComboBox.Items.Clear();
|
||||
foreach (string meshid in meshcentral.meshes.Keys)
|
||||
if (selectedNode == null)
|
||||
{
|
||||
MeshClass mesh = meshcentral.meshes[meshid];
|
||||
if (mesh.type == 2) {
|
||||
int nodeCount = 0;
|
||||
foreach (string nodeid in meshcentral.nodes.Keys) {
|
||||
NodeClass node = meshcentral.nodes[nodeid];
|
||||
if ((node.meshid == mesh.meshid) && ((node.conn & 1) != 0)) { nodeCount++; }
|
||||
// Fill the groups
|
||||
groupComboBox.Items.Clear();
|
||||
foreach (string meshid in meshcentral.meshes.Keys)
|
||||
{
|
||||
MeshClass mesh = meshcentral.meshes[meshid];
|
||||
if (mesh.type == 2)
|
||||
{
|
||||
int nodeCount = 0;
|
||||
foreach (string nodeid in meshcentral.nodes.Keys)
|
||||
{
|
||||
NodeClass node = meshcentral.nodes[nodeid];
|
||||
if ((node.meshid == mesh.meshid) && ((node.conn & 1) != 0)) { nodeCount++; }
|
||||
}
|
||||
if (nodeCount > 0) { groupComboBox.Items.Add(mesh); }
|
||||
}
|
||||
if (nodeCount > 0) { groupComboBox.Items.Add(mesh); }
|
||||
}
|
||||
}
|
||||
|
||||
// Set default selection
|
||||
if (groupComboBox.Items.Count > 0) { groupComboBox.SelectedIndex = 0; }
|
||||
appComboBox.SelectedIndex = 1;
|
||||
fillNodesInDropDown();
|
||||
// Set default selection
|
||||
if (groupComboBox.Items.Count > 0) { groupComboBox.SelectedIndex = 0; }
|
||||
appComboBox.SelectedIndex = 1;
|
||||
fillNodesInDropDown();
|
||||
} else {
|
||||
groupComboBox.Items.Add(selectedNode.mesh);
|
||||
groupComboBox.SelectedIndex = 0;
|
||||
groupComboBox.Enabled = false;
|
||||
nodeComboBox.Items.Add(selectedNode);
|
||||
nodeComboBox.SelectedIndex = 0;
|
||||
nodeComboBox.Enabled = false;
|
||||
appComboBox.SelectedIndex = 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void fillNodesInDropDown()
|
||||
{
|
||||
if (selectedNode != null) return;
|
||||
MeshClass mesh = (MeshClass)groupComboBox.SelectedItem;
|
||||
|
||||
// Fill the nodes dropdown
|
||||
|
||||
@@ -322,6 +322,12 @@
|
||||
<metadata name="rdpContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>313, 17</value>
|
||||
</metadata>
|
||||
<data name="setRDPPortToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 22</value>
|
||||
</data>
|
||||
<data name="setRDPPortToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Set RDP port...</value>
|
||||
</data>
|
||||
<data name="rdpContextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 26</value>
|
||||
</data>
|
||||
@@ -355,12 +361,6 @@
|
||||
<data name=">>rdpButton.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="setRDPPortToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 22</value>
|
||||
</data>
|
||||
<data name="setRDPPortToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Set RDP port...</value>
|
||||
</data>
|
||||
<metadata name="deviceImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
@@ -369,7 +369,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAy
|
||||
mgAAAk1TRnQBSQFMAgEBCAEAAWgBAAFoAQABMgEAATIBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAHI
|
||||
mgAAAk1TRnQBSQFMAgEBCAEAAXABAAFwAQABMgEAATIBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAHI
|
||||
AwABlgMAAQEBAAEQBQABYAHq/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
@@ -1037,7 +1037,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4
|
||||
mgAAAk1TRnQBSQFMAgEBCAEAAXABAAFwAQABMgEAATIBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAHI
|
||||
mgAAAk1TRnQBSQFMAgEBCAEAAXgBAAF4AQABMgEAATIBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAHI
|
||||
AwABlgMAAQEBAAEQBQABYAHq/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
@@ -1706,6 +1706,12 @@
|
||||
<metadata name="altPortContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>468, 17</value>
|
||||
</metadata>
|
||||
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Use Alternate Port...</value>
|
||||
</data>
|
||||
<data name="altPortContextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>179, 26</value>
|
||||
</data>
|
||||
@@ -1739,12 +1745,6 @@
|
||||
<data name=">>httpsButton.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Use Alternate Port...</value>
|
||||
</data>
|
||||
<data name="httpButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
@@ -1833,7 +1833,7 @@
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>433, 60</value>
|
||||
<value>429, 56</value>
|
||||
</data>
|
||||
<data name=">>setRDPPortToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>setRDPPortToolStripMenuItem</value>
|
||||
|
||||
140
MainForm.Designer.cs
generated
140
MainForm.Designer.cs
generated
@@ -110,6 +110,19 @@
|
||||
this.saveMappingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openMapFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.saveMapFileDialog = new System.Windows.Forms.SaveFileDialog();
|
||||
this.devicesListView = new System.Windows.Forms.ListView();
|
||||
this.devicesImageList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.nameColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.stateColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.devicesContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.httpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.httpsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.rdpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.sshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.scpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.addMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addRelayMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.panel5.SuspendLayout();
|
||||
this.mainPanel.SuspendLayout();
|
||||
this.mainTabControl.SuspendLayout();
|
||||
@@ -138,6 +151,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.trayIconContextMenuStrip.SuspendLayout();
|
||||
this.mappingsContextMenuStrip.SuspendLayout();
|
||||
this.devicesContextMenuStrip.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel5
|
||||
@@ -535,6 +549,7 @@
|
||||
resources.ApplyResources(this.devicesPanel, "devicesPanel");
|
||||
this.devicesPanel.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.devicesPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.devicesPanel.Controls.Add(this.devicesListView);
|
||||
this.devicesPanel.Controls.Add(this.noSearchResultsLabel);
|
||||
this.devicesPanel.Controls.Add(this.noDevicesLabel);
|
||||
this.devicesPanel.Name = "devicesPanel";
|
||||
@@ -719,6 +734,117 @@
|
||||
this.saveMapFileDialog.DefaultExt = "mcrouter";
|
||||
resources.ApplyResources(this.saveMapFileDialog, "saveMapFileDialog");
|
||||
//
|
||||
// devicesListView
|
||||
//
|
||||
this.devicesListView.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.devicesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.nameColumnHeader,
|
||||
this.stateColumnHeader});
|
||||
this.devicesListView.ContextMenuStrip = this.devicesContextMenuStrip;
|
||||
this.devicesListView.FullRowSelect = true;
|
||||
this.devicesListView.GridLines = true;
|
||||
this.devicesListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.devicesListView.LargeImageList = this.devicesImageList;
|
||||
resources.ApplyResources(this.devicesListView, "devicesListView");
|
||||
this.devicesListView.MultiSelect = false;
|
||||
this.devicesListView.Name = "devicesListView";
|
||||
this.devicesListView.SmallImageList = this.devicesImageList;
|
||||
this.devicesListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
|
||||
this.devicesListView.UseCompatibleStateImageBehavior = false;
|
||||
this.devicesListView.View = System.Windows.Forms.View.Details;
|
||||
this.devicesListView.DoubleClick += new System.EventHandler(this.devicesListView_DoubleClick);
|
||||
//
|
||||
// devicesImageList
|
||||
//
|
||||
this.devicesImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("devicesImageList.ImageStream")));
|
||||
this.devicesImageList.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.devicesImageList.Images.SetKeyName(0, "icons01.png");
|
||||
this.devicesImageList.Images.SetKeyName(1, "icons01t.png");
|
||||
this.devicesImageList.Images.SetKeyName(2, "icons02.png");
|
||||
this.devicesImageList.Images.SetKeyName(3, "icons02t.png");
|
||||
this.devicesImageList.Images.SetKeyName(4, "icons03.png");
|
||||
this.devicesImageList.Images.SetKeyName(5, "icons03t.png");
|
||||
this.devicesImageList.Images.SetKeyName(6, "icons04.png");
|
||||
this.devicesImageList.Images.SetKeyName(7, "icons04t.png");
|
||||
this.devicesImageList.Images.SetKeyName(8, "icons05.png");
|
||||
this.devicesImageList.Images.SetKeyName(9, "icons05t.png");
|
||||
this.devicesImageList.Images.SetKeyName(10, "icons06.png");
|
||||
this.devicesImageList.Images.SetKeyName(11, "icons06t.png");
|
||||
this.devicesImageList.Images.SetKeyName(12, "icons07.png");
|
||||
this.devicesImageList.Images.SetKeyName(13, "icons07t.png");
|
||||
this.devicesImageList.Images.SetKeyName(14, "icons08.png");
|
||||
this.devicesImageList.Images.SetKeyName(15, "icons08t.png");
|
||||
//
|
||||
// nameColumnHeader
|
||||
//
|
||||
resources.ApplyResources(this.nameColumnHeader, "nameColumnHeader");
|
||||
//
|
||||
// stateColumnHeader
|
||||
//
|
||||
resources.ApplyResources(this.stateColumnHeader, "stateColumnHeader");
|
||||
//
|
||||
// devicesContextMenuStrip
|
||||
//
|
||||
this.devicesContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addMapToolStripMenuItem,
|
||||
this.addRelayMapToolStripMenuItem,
|
||||
this.toolStripMenuItem3,
|
||||
this.httpToolStripMenuItem,
|
||||
this.httpsToolStripMenuItem,
|
||||
this.rdpToolStripMenuItem,
|
||||
this.sshToolStripMenuItem,
|
||||
this.scpToolStripMenuItem});
|
||||
this.devicesContextMenuStrip.Name = "devicesContextMenuStrip";
|
||||
resources.ApplyResources(this.devicesContextMenuStrip, "devicesContextMenuStrip");
|
||||
this.devicesContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.devicesContextMenuStrip_Opening);
|
||||
//
|
||||
// httpToolStripMenuItem
|
||||
//
|
||||
this.httpToolStripMenuItem.Name = "httpToolStripMenuItem";
|
||||
resources.ApplyResources(this.httpToolStripMenuItem, "httpToolStripMenuItem");
|
||||
this.httpToolStripMenuItem.Click += new System.EventHandler(this.httpToolStripMenuItem_Click);
|
||||
//
|
||||
// httpsToolStripMenuItem
|
||||
//
|
||||
this.httpsToolStripMenuItem.Name = "httpsToolStripMenuItem";
|
||||
resources.ApplyResources(this.httpsToolStripMenuItem, "httpsToolStripMenuItem");
|
||||
this.httpsToolStripMenuItem.Click += new System.EventHandler(this.httpsToolStripMenuItem_Click);
|
||||
//
|
||||
// rdpToolStripMenuItem
|
||||
//
|
||||
this.rdpToolStripMenuItem.Name = "rdpToolStripMenuItem";
|
||||
resources.ApplyResources(this.rdpToolStripMenuItem, "rdpToolStripMenuItem");
|
||||
this.rdpToolStripMenuItem.Click += new System.EventHandler(this.rdpToolStripMenuItem_Click);
|
||||
//
|
||||
// sshToolStripMenuItem
|
||||
//
|
||||
this.sshToolStripMenuItem.Name = "sshToolStripMenuItem";
|
||||
resources.ApplyResources(this.sshToolStripMenuItem, "sshToolStripMenuItem");
|
||||
this.sshToolStripMenuItem.Click += new System.EventHandler(this.sshToolStripMenuItem_Click);
|
||||
//
|
||||
// scpToolStripMenuItem
|
||||
//
|
||||
this.scpToolStripMenuItem.Name = "scpToolStripMenuItem";
|
||||
resources.ApplyResources(this.scpToolStripMenuItem, "scpToolStripMenuItem");
|
||||
this.scpToolStripMenuItem.Click += new System.EventHandler(this.scpToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem3
|
||||
//
|
||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
|
||||
//
|
||||
// addMapToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addMapToolStripMenuItem, "addMapToolStripMenuItem");
|
||||
this.addMapToolStripMenuItem.Name = "addMapToolStripMenuItem";
|
||||
this.addMapToolStripMenuItem.Click += new System.EventHandler(this.addMapToolStripMenuItem_Click);
|
||||
//
|
||||
// addRelayMapToolStripMenuItem
|
||||
//
|
||||
this.addRelayMapToolStripMenuItem.Name = "addRelayMapToolStripMenuItem";
|
||||
resources.ApplyResources(this.addRelayMapToolStripMenuItem, "addRelayMapToolStripMenuItem");
|
||||
this.addRelayMapToolStripMenuItem.Click += new System.EventHandler(this.addRelayMapToolStripMenuItem_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
@@ -762,6 +888,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.trayIconContextMenuStrip.ResumeLayout(false);
|
||||
this.mappingsContextMenuStrip.ResumeLayout(false);
|
||||
this.devicesContextMenuStrip.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@@ -847,6 +974,19 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem saveMappingsToolStripMenuItem;
|
||||
private System.Windows.Forms.OpenFileDialog openMapFileDialog;
|
||||
private System.Windows.Forms.SaveFileDialog saveMapFileDialog;
|
||||
private System.Windows.Forms.ListView devicesListView;
|
||||
private System.Windows.Forms.ImageList devicesImageList;
|
||||
private System.Windows.Forms.ColumnHeader nameColumnHeader;
|
||||
private System.Windows.Forms.ColumnHeader stateColumnHeader;
|
||||
private System.Windows.Forms.ContextMenuStrip devicesContextMenuStrip;
|
||||
private System.Windows.Forms.ToolStripMenuItem httpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem httpsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem rdpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem sshToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem scpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem addMapToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem addRelayMapToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
440
MainForm.cs
440
MainForm.cs
@@ -49,6 +49,7 @@ namespace MeshCentralRouter
|
||||
public Process installProcess = null;
|
||||
public string acceptableCertHash = null;
|
||||
public ArrayList mappingsToSetup = null;
|
||||
public bool deviceListViewMode = true;
|
||||
|
||||
public void setRegValue(string name, string value) {
|
||||
try { Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", name, value); } catch (Exception) { }
|
||||
@@ -170,6 +171,7 @@ namespace MeshCentralRouter
|
||||
|
||||
int argflags = 0;
|
||||
foreach (string arg in this.args) {
|
||||
if (arg.ToLower() == "-oldstyle") { deviceListViewMode = false; }
|
||||
if (arg.ToLower() == "-install") { hookRouter(); forceExit = true; return; }
|
||||
if (arg.ToLower() == "-uninstall") { unHookRouter(); forceExit = true; return; }
|
||||
if (arg.ToLower() == "-debug") { debug = true; }
|
||||
@@ -231,6 +233,20 @@ namespace MeshCentralRouter
|
||||
//scanner.MulticastPing();
|
||||
|
||||
if (autoLogin || (authLoginUrl != null)) { nextButton1_Click(null, null); }
|
||||
|
||||
// Setup the device list view panel
|
||||
if (deviceListViewMode)
|
||||
{
|
||||
devicesListView.Top = 0;
|
||||
devicesListView.Left = 0;
|
||||
devicesListView.Width = devicesPanel.Width;
|
||||
devicesListView.Height = devicesPanel.Height;
|
||||
devicesListView.Visible = true;
|
||||
devicesPanel.AutoScroll = false;
|
||||
toolStripMenuItem2.Visible = false;
|
||||
sortByNameToolStripMenuItem.Visible = false;
|
||||
sortByGroupToolStripMenuItem.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePanel1(object sender, EventArgs e)
|
||||
@@ -369,133 +385,193 @@ namespace MeshCentralRouter
|
||||
private void updateDeviceList()
|
||||
{
|
||||
string search = searchTextBox.Text.ToLower();
|
||||
devicesPanel.SuspendLayout();
|
||||
|
||||
// Untag all devices
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
if (deviceListViewMode)
|
||||
{
|
||||
if (c.GetType() == typeof(DeviceUserControl)) { ((DeviceUserControl)c).present = false; }
|
||||
}
|
||||
devicesListView.SuspendLayout();
|
||||
devicesListView.Items.Clear();
|
||||
|
||||
/*
|
||||
lock (meshcentral.nodes)
|
||||
{
|
||||
// Add any missing devices
|
||||
ArrayList controlsToAdd = new ArrayList();
|
||||
foreach (MeshClass mesh in meshcentral.meshes.Values)
|
||||
if (meshcentral.nodes != null)
|
||||
{
|
||||
if (mesh.type == 2)
|
||||
foreach (NodeClass node in meshcentral.nodes.Values)
|
||||
{
|
||||
foreach (NodeClass node in meshcentral.nodes.Values)
|
||||
if (node.agentid == -1) { continue; }
|
||||
ListViewItem device;
|
||||
if (node.listitem == null)
|
||||
{
|
||||
if ((node.control == null) && (node.meshid == mesh.meshid))
|
||||
device = new ListViewItem(node.name);
|
||||
device.SubItems.Add(node.getStateString());
|
||||
device.Tag = node;
|
||||
node.listitem = device;
|
||||
} else {
|
||||
device = node.listitem;
|
||||
device.SubItems[0].Text = node.name;
|
||||
device.SubItems[1].Text = node.getStateString();
|
||||
}
|
||||
|
||||
if ((node.meshid != null) && meshcentral.meshes.ContainsKey(node.meshid)) { node.mesh = (MeshClass)meshcentral.meshes[node.meshid]; }
|
||||
if ((showGroupNamesToolStripMenuItem.Checked) && (node.mesh != null)) {
|
||||
device.SubItems[0].Text = node.mesh.name + " - " + node.name;
|
||||
} else {
|
||||
device.SubItems[0].Text = node.name;
|
||||
}
|
||||
|
||||
bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((node.conn & 1) != 0));
|
||||
int imageIndex = (node.icon - 1) * 2;
|
||||
if ((node.conn & 1) == 0) { imageIndex++; }
|
||||
device.ImageIndex = imageIndex;
|
||||
if (connVisible && ((search == "") || (device.SubItems[0].Text.ToLower().IndexOf(search) >= 0))) { controlsToAdd.Add(device); }
|
||||
}
|
||||
|
||||
// Add all controls at once to make it fast.
|
||||
if (controlsToAdd.Count > 0) {
|
||||
devicesListView.Items.AddRange((ListViewItem[])controlsToAdd.ToArray(typeof(ListViewItem)));
|
||||
}
|
||||
}
|
||||
|
||||
devicesListView.ResumeLayout();
|
||||
}
|
||||
else
|
||||
{
|
||||
devicesPanel.SuspendLayout();
|
||||
|
||||
// Untag all devices
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
{
|
||||
if (c.GetType() == typeof(DeviceUserControl)) { ((DeviceUserControl)c).present = false; }
|
||||
}
|
||||
|
||||
/*
|
||||
lock (meshcentral.nodes)
|
||||
{
|
||||
// Add any missing devices
|
||||
ArrayList controlsToAdd = new ArrayList();
|
||||
foreach (MeshClass mesh in meshcentral.meshes.Values)
|
||||
{
|
||||
if (mesh.type == 2)
|
||||
{
|
||||
foreach (NodeClass node in meshcentral.nodes.Values)
|
||||
{
|
||||
// Add a new device
|
||||
DeviceUserControl device = new DeviceUserControl();
|
||||
device.mesh = mesh;
|
||||
device.node = node;
|
||||
device.parent = this;
|
||||
device.Dock = DockStyle.Top;
|
||||
device.present = true;
|
||||
node.control = device;
|
||||
device.UpdateInfo();
|
||||
device.Visible = (search == "") || (node.name.ToLower().IndexOf(search) >= 0);
|
||||
controlsToAdd.Add(device);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Tag the device as present
|
||||
if (node.control != null)
|
||||
if ((node.control == null) && (node.meshid == mesh.meshid))
|
||||
{
|
||||
node.control.present = true;
|
||||
node.control.UpdateInfo();
|
||||
// Add a new device
|
||||
DeviceUserControl device = new DeviceUserControl();
|
||||
device.mesh = mesh;
|
||||
device.node = node;
|
||||
device.parent = this;
|
||||
device.Dock = DockStyle.Top;
|
||||
device.present = true;
|
||||
node.control = device;
|
||||
device.UpdateInfo();
|
||||
device.Visible = (search == "") || (node.name.ToLower().IndexOf(search) >= 0);
|
||||
controlsToAdd.Add(device);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Tag the device as present
|
||||
if (node.control != null)
|
||||
{
|
||||
node.control.present = true;
|
||||
node.control.UpdateInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add all controls at once to make it fast.
|
||||
if (controlsToAdd.Count > 0) { devicesPanel.Controls.AddRange((DeviceUserControl[])controlsToAdd.ToArray(typeof(DeviceUserControl))); }
|
||||
}
|
||||
*/
|
||||
|
||||
// Add all controls at once to make it fast.
|
||||
if (controlsToAdd.Count > 0) { devicesPanel.Controls.AddRange((DeviceUserControl[])controlsToAdd.ToArray(typeof(DeviceUserControl))); }
|
||||
}
|
||||
*/
|
||||
|
||||
ArrayList controlsToAdd = new ArrayList();
|
||||
if (meshcentral.nodes != null)
|
||||
{
|
||||
foreach (NodeClass node in meshcentral.nodes.Values)
|
||||
ArrayList controlsToAdd = new ArrayList();
|
||||
if (meshcentral.nodes != null)
|
||||
{
|
||||
if (node.agentid == -1) { continue; }
|
||||
if (node.control == null)
|
||||
foreach (NodeClass node in meshcentral.nodes.Values)
|
||||
{
|
||||
// Add a new device
|
||||
DeviceUserControl device = new DeviceUserControl();
|
||||
if ((node.meshid != null) && meshcentral.meshes.ContainsKey(node.meshid)) { device.mesh = (MeshClass)meshcentral.meshes[node.meshid]; }
|
||||
device.node = node;
|
||||
device.parent = this;
|
||||
device.Dock = DockStyle.Top;
|
||||
device.present = true;
|
||||
node.control = device;
|
||||
device.UpdateInfo();
|
||||
device.Visible = (search == "") || (node.name.ToLower().IndexOf(search) >= 0);
|
||||
controlsToAdd.Add(device);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Tag the device as present
|
||||
if (node.control != null)
|
||||
if (node.agentid == -1) { continue; }
|
||||
if (node.control == null)
|
||||
{
|
||||
node.control.present = true;
|
||||
node.control.UpdateInfo();
|
||||
// Add a new device
|
||||
DeviceUserControl device = new DeviceUserControl();
|
||||
if ((node.meshid != null) && meshcentral.meshes.ContainsKey(node.meshid)) { device.mesh = (MeshClass)meshcentral.meshes[node.meshid]; }
|
||||
device.node = node;
|
||||
device.parent = this;
|
||||
device.Dock = DockStyle.Top;
|
||||
device.present = true;
|
||||
node.control = device;
|
||||
device.UpdateInfo();
|
||||
device.Visible = (search == "") || (node.name.ToLower().IndexOf(search) >= 0);
|
||||
controlsToAdd.Add(device);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Tag the device as present
|
||||
if (node.control != null)
|
||||
{
|
||||
node.control.present = true;
|
||||
node.control.UpdateInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Add all controls at once to make it fast.
|
||||
if (controlsToAdd.Count > 0) { devicesPanel.Controls.AddRange((DeviceUserControl[])controlsToAdd.ToArray(typeof(DeviceUserControl))); }
|
||||
// Add all controls at once to make it fast.
|
||||
if (controlsToAdd.Count > 0) { devicesPanel.Controls.AddRange((DeviceUserControl[])controlsToAdd.ToArray(typeof(DeviceUserControl))); }
|
||||
|
||||
// Clear all untagged devices
|
||||
bool removed;
|
||||
do {
|
||||
removed = false;
|
||||
foreach (Control c in devicesPanel.Controls) {
|
||||
if ((c.GetType() == typeof(DeviceUserControl)) && ((DeviceUserControl)c).present == false) {
|
||||
devicesPanel.Controls.Remove(c); c.Dispose(); removed = true;
|
||||
// Clear all untagged devices
|
||||
bool removed;
|
||||
do
|
||||
{
|
||||
removed = false;
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
{
|
||||
if ((c.GetType() == typeof(DeviceUserControl)) && ((DeviceUserControl)c).present == false)
|
||||
{
|
||||
devicesPanel.Controls.Remove(c); c.Dispose(); removed = true;
|
||||
}
|
||||
}
|
||||
} while (removed == true);
|
||||
|
||||
// Filter devices
|
||||
int visibleDevices = 0;
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
{
|
||||
if (c.GetType() == typeof(DeviceUserControl))
|
||||
{
|
||||
NodeClass n = ((DeviceUserControl)c).node;
|
||||
bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((n.conn & 1) != 0));
|
||||
if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0) || (showGroupNamesToolStripMenuItem.Checked && (((DeviceUserControl)c).mesh.name.ToLower().IndexOf(search) >= 0)))
|
||||
{
|
||||
c.Visible = connVisible;
|
||||
visibleDevices++;
|
||||
}
|
||||
else
|
||||
{
|
||||
c.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (removed == true);
|
||||
|
||||
// Filter devices
|
||||
int visibleDevices = 0;
|
||||
foreach (Control c in devicesPanel.Controls) {
|
||||
if (c.GetType() == typeof(DeviceUserControl)) {
|
||||
NodeClass n = ((DeviceUserControl)c).node;
|
||||
bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((n.conn & 1) != 0));
|
||||
if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0) || (showGroupNamesToolStripMenuItem.Checked && (((DeviceUserControl)c).mesh.name.ToLower().IndexOf(search) >= 0))) {
|
||||
c.Visible = connVisible;
|
||||
visibleDevices++;
|
||||
} else {
|
||||
c.Visible = false;
|
||||
}
|
||||
// Sort devices
|
||||
ArrayList sortlist = new ArrayList();
|
||||
foreach (Control c in devicesPanel.Controls) { if (c.GetType() == typeof(DeviceUserControl)) { sortlist.Add(c); } }
|
||||
if (sortByNameToolStripMenuItem.Checked)
|
||||
{
|
||||
DeviceComparer comp = new DeviceComparer();
|
||||
sortlist.Sort(comp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DeviceGroupComparer comp = new DeviceGroupComparer();
|
||||
sortlist.Sort(comp);
|
||||
}
|
||||
remoteAllDeviceControls();
|
||||
devicesPanel.Controls.AddRange((DeviceUserControl[])sortlist.ToArray(typeof(DeviceUserControl)));
|
||||
|
||||
// Sort devices
|
||||
ArrayList sortlist = new ArrayList();
|
||||
foreach (Control c in devicesPanel.Controls) { if (c.GetType() == typeof(DeviceUserControl)) { sortlist.Add(c); } }
|
||||
if (sortByNameToolStripMenuItem.Checked) {
|
||||
DeviceComparer comp = new DeviceComparer();
|
||||
sortlist.Sort(comp);
|
||||
} else {
|
||||
DeviceGroupComparer comp = new DeviceGroupComparer();
|
||||
sortlist.Sort(comp);
|
||||
devicesPanel.ResumeLayout();
|
||||
noDevicesLabel.Visible = (sortlist.Count == 0);
|
||||
noSearchResultsLabel.Visible = ((sortlist.Count > 0) && (visibleDevices == 0));
|
||||
}
|
||||
remoteAllDeviceControls();
|
||||
devicesPanel.Controls.AddRange((DeviceUserControl[])sortlist.ToArray(typeof(DeviceUserControl)));
|
||||
|
||||
devicesPanel.ResumeLayout();
|
||||
noDevicesLabel.Visible = (sortlist.Count == 0);
|
||||
noSearchResultsLabel.Visible = ((sortlist.Count > 0) && (visibleDevices == 0));
|
||||
}
|
||||
|
||||
private void remoteAllDeviceControls()
|
||||
@@ -758,6 +834,16 @@ namespace MeshCentralRouter
|
||||
private void addButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
AddPortMapForm form = new AddPortMapForm(meshcentral);
|
||||
|
||||
if (sender == null)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
form.setNode(node);
|
||||
}
|
||||
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Add a new port map
|
||||
@@ -875,6 +961,16 @@ namespace MeshCentralRouter
|
||||
private void addRelayMapButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
AddRelayMapForm form = new AddRelayMapForm(meshcentral);
|
||||
|
||||
if (sender == null)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
form.setNode(node);
|
||||
}
|
||||
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Add a new port map
|
||||
@@ -962,30 +1058,37 @@ namespace MeshCentralRouter
|
||||
|
||||
private void searchTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Filter devices
|
||||
int visibleDevices = 0;
|
||||
int deviceCount = 0;
|
||||
string search = searchTextBox.Text.ToLower();
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
{
|
||||
if (c.GetType() == typeof(DeviceUserControl))
|
||||
if (deviceListViewMode) {
|
||||
// Filter devices
|
||||
updateDeviceList();
|
||||
} else {
|
||||
// Filter devices
|
||||
int visibleDevices = 0;
|
||||
int deviceCount = 0;
|
||||
string search = searchTextBox.Text.ToLower();
|
||||
foreach (Control c in devicesPanel.Controls)
|
||||
{
|
||||
deviceCount++;
|
||||
NodeClass n = ((DeviceUserControl)c).node;
|
||||
bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((n.conn & 1) != 0));
|
||||
if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0) || (showGroupNamesToolStripMenuItem.Checked && (((DeviceUserControl)c).mesh.name.ToLower().IndexOf(search) >= 0)))
|
||||
if (c.GetType() == typeof(DeviceUserControl))
|
||||
{
|
||||
//if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0)) {
|
||||
c.Visible = connVisible;
|
||||
visibleDevices++;
|
||||
} else {
|
||||
c.Visible = false;
|
||||
deviceCount++;
|
||||
NodeClass n = ((DeviceUserControl)c).node;
|
||||
bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((n.conn & 1) != 0));
|
||||
if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0) || (showGroupNamesToolStripMenuItem.Checked && (((DeviceUserControl)c).mesh.name.ToLower().IndexOf(search) >= 0)))
|
||||
{
|
||||
//if ((search == "") || (n.name.ToLower().IndexOf(search) >= 0)) {
|
||||
c.Visible = connVisible;
|
||||
visibleDevices++;
|
||||
}
|
||||
else
|
||||
{
|
||||
c.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
noDevicesLabel.Visible = (deviceCount == 0);
|
||||
noSearchResultsLabel.Visible = ((deviceCount > 0) && (visibleDevices == 0));
|
||||
noDevicesLabel.Visible = (deviceCount == 0);
|
||||
noSearchResultsLabel.Visible = ((deviceCount > 0) && (visibleDevices == 0));
|
||||
}
|
||||
}
|
||||
|
||||
private void devicesTabControl_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@@ -1166,7 +1269,8 @@ namespace MeshCentralRouter
|
||||
{
|
||||
// Find the node
|
||||
string nodeId = (string)x["nodeId"];
|
||||
NodeClass node = meshcentral.nodes[nodeId];
|
||||
NodeClass node = null;
|
||||
try { node = meshcentral.nodes[nodeId]; } catch (Exception) { }
|
||||
if (node == null) continue;
|
||||
|
||||
// Add a new port map
|
||||
@@ -1245,6 +1349,102 @@ namespace MeshCentralRouter
|
||||
try { loadMappingFile(File.ReadAllText(s[0]), 2); } catch (Exception) { }
|
||||
}
|
||||
|
||||
private void devicesContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { e.Cancel = true; return; } // Device not selected
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { e.Cancel = true; return; } // Agent not connected on this device
|
||||
if (node.agentid < 6)
|
||||
{
|
||||
// Windows OS
|
||||
sshToolStripMenuItem.Visible = false;
|
||||
scpToolStripMenuItem.Visible = false;
|
||||
rdpToolStripMenuItem.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Other OS
|
||||
sshToolStripMenuItem.Visible = true;
|
||||
scpToolStripMenuItem.Visible = true;
|
||||
rdpToolStripMenuItem.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void httpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
QuickMap(1, 80, 1, node); // HTTP
|
||||
}
|
||||
|
||||
private void httpsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
QuickMap(1, 443, 2, node); // HTTPS
|
||||
}
|
||||
|
||||
private void rdpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
int rdpport = 3389;
|
||||
if (node.rdpport != 0) { rdpport = node.rdpport; }
|
||||
QuickMap(1, rdpport, 3, node); // RDP
|
||||
}
|
||||
|
||||
private void sshToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
QuickMap(1, 22, 4, node); // Putty
|
||||
}
|
||||
|
||||
private void scpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
QuickMap(1, 22, 5, node); // WinSCP
|
||||
}
|
||||
|
||||
private void addMapToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
addButton_Click(null, null);
|
||||
}
|
||||
|
||||
private void addRelayMapToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
addRelayMapButton_Click(null, null);
|
||||
}
|
||||
|
||||
private void devicesListView_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
if (devicesListView.SelectedItems.Count != 1) { return; }
|
||||
ListViewItem selecteditem = devicesListView.SelectedItems[0];
|
||||
NodeClass node = (NodeClass)selecteditem.Tag;
|
||||
if ((node.conn & 1) == 0) { return; } // Agent not connected on this device
|
||||
addButton_Click(null, null);
|
||||
}
|
||||
|
||||
/*
|
||||
private delegate void displayMessageHandler(string msg, int buttons, string extra, int progress);
|
||||
private void displayMessage(string msg, int buttons = 0, string extra = "", int progress = 0)
|
||||
|
||||
312
MainForm.resx
312
MainForm.resx
@@ -1323,6 +1323,240 @@
|
||||
<data name="devicesPanel.AutoScroll" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="nameColumnHeader.Text" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="nameColumnHeader.Width" type="System.Int32, mscorlib">
|
||||
<value>250</value>
|
||||
</data>
|
||||
<data name="stateColumnHeader.Text" xml:space="preserve">
|
||||
<value>State</value>
|
||||
</data>
|
||||
<data name="stateColumnHeader.Width" type="System.Int32, mscorlib">
|
||||
<value>198</value>
|
||||
</data>
|
||||
<metadata name="devicesContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>161, 56</value>
|
||||
</metadata>
|
||||
<data name="addMapToolStripMenuItem.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 9pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="addMapToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="addMapToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Add &Map...</value>
|
||||
</data>
|
||||
<data name="addRelayMapToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="addRelayMapToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Add &Relay Map...</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 6</value>
|
||||
</data>
|
||||
<data name="httpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="httpToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>HTTP</value>
|
||||
</data>
|
||||
<data name="httpsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="httpsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>HTTPS</value>
|
||||
</data>
|
||||
<data name="rdpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="rdpToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>RDP</value>
|
||||
</data>
|
||||
<data name="sshToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="sshToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>SSH</value>
|
||||
</data>
|
||||
<data name="scpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 22</value>
|
||||
</data>
|
||||
<data name="scpToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>SCP</value>
|
||||
</data>
|
||||
<data name="devicesContextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 164</value>
|
||||
</data>
|
||||
<data name=">>devicesContextMenuStrip.Name" xml:space="preserve">
|
||||
<value>devicesContextMenuStrip</value>
|
||||
</data>
|
||||
<data name=">>devicesContextMenuStrip.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<metadata name="devicesImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<data name="devicesImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADg
|
||||
HQAAAk1TRnQBSQFMAgEBEAEAARgBAAEIAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABUAMAAQEBAAEYBgABPP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AJYAA/0D+AP3A/sD/yEAA/0D+gP5
|
||||
A/wD/xgAAfoB+wH6A/4qAAP9A/8tAAP7A88D1QPbA88D1AO+A9QYAAP8A90D4APjA90D4APUA+MSAAP8
|
||||
AZEBjwF9AU4BaAEhAfQB9QH0JAAD/gPRA8YD+ioAAcYCxwHPAtAB2ALZA90DywPBA68DmgP3FQAD2APd
|
||||
A+ID4wPaA9UDzAPAA/kMAAP/AVgBbwEyAWMBcwE/ASwBMwEgAU8BYQEvAbABugGhHgAD/wPIA8kDvAPF
|
||||
A+IhAAP/A/ABugK7ArYBtwPAAdIC0wOrA4YDgQOiA94D/wwAA/8D9APTA9AD1APfA8oDtgOyA8QD6QP/
|
||||
CQABaAF9AUMBTwFnASMBUgFpASkBowGmAZ0DLgFKAVYBNgFbAXABPgP5GAADzQbGA9gDvAPDA8kD/A8A
|
||||
A/YC0wHUArYBtwKbAZ0BpwGWAYQBtAGPAWcBwAGOAVYBtgGAAUUByQG6AagBxgHJAcoCqgGsAqcBqQKv
|
||||
AbABwQGxAa0BvwK6A/oD+QPjA9EDwgO9A7YDtAOtA9AD2QPKA8gDzAPNA9MD/AYAAXoBjAFfAUMBWwE0
|
||||
AUIBTgErASkBLgEXAUcBYQEaAVMBcwFYATYBbwF8AUcBVQEqAWIBZwFVAa4BrQGsEgAD0wPEA8EDuwPE
|
||||
BsoDwgPHA+AMAAK5AbwBrQGBAU4BtQGAAUQBwgGGAUUBxQGKAUkBxwGLAUoBxgGLAUkBxQGJAUkBxwGj
|
||||
AXoBxwK8AbcBfQF2AbMBRQE3AaYBGQEIAaYBGgEJAcIBqQGmA/ED1AOuA60DrwmyA7ADwAPTA7IDmAaC
|
||||
A8gD9gMAAZkBpQGIAVMBaAEqAT8BUAEhAR8BIQETAUoBYgEfAUYBXwEZAUcBYgEmAUUBXgEZAVsBaQFB
|
||||
AVMBYAF4ASwBRAFpAYoBjwF5A/0JAAPdA8YDwQO6BsQDxQPEA8YDyAPCA9ID/gYAA+kBsgF/AUYBswGB
|
||||
AUcBugGCAUQBvwGGAUcByQGOAUoB1QGTAUkB3QGVAUcBygGRAVIBtwGpAagBuAF6AXMBsgFTAUcBsgEz
|
||||
ASEBtAEqARcByAGaAZMD1wPwCa0DrwOyA7UDtgO1A8gDsgOfA40DiwPCA+UB0QHWAc0BQAFUASUBQQFb
|
||||
AS4BKQEvARcBRQFeARkBRAFdARkBRAFcARkBRAFFATsBQAE+ATsBQwFbARgBQgFSASIBeQF4AW0BFQIS
|
||||
AUYBVQEoAdIB1gHMAwAD7gPCA8MDuwnDA8ADvwPDA8EDzAO3A8ID7AMAA/0BuQGEAUgBrwF+AUcBsAF/
|
||||
AUYBtgGCAUgB5gGYAUMB8wGfAUMB+QGkAUcB7QGfAUcBqQKlAcABigGCAboBYgFXAbwBSAE3Ab0BOwEo
|
||||
AcoBegFtAasCrAP9A68GrAOuA7YDugO8A7oDxgO6A6YDmQOTA7IDyQP/AW8BfgGBAScBKQEoAUgBWAEs
|
||||
ATwBSQErAUMBWwEYAUIBWgEYAR8CHAEeARoBHAFGAVwBHwE6AU0BPAEPAQ4BDQFCAUQBMQFXAU8BSQGx
|
||||
AakBowFfAW8BPwP/A9ADuwPDA8AGwwa5A8MDwQO2A8ADwgPZA8gDAAG5AYQBSQGoAXkBQwGrAXwBRgG4
|
||||
AYMBSAH9Aa0BUQH+AbABWAH/AbYBZQH+AbkBaQGxAa4BrwHIAZkBkwG/AXEBZgHDAVsBTAHEAUsBOgHH
|
||||
AVYBQwOlAwADrwOpA6oDrgPAA8MDxgPIA8sDwgOtA6IDmwOfA8YGAAHbAd8B4AFWAWABZgEnAS8BJwFL
|
||||
AVwBRgFBAVgBIgFFAVsBJAFCAVgBIQFCAVkBOAFTAV0BQAFEAVgBIQFWAU8BSAGUAYoBhAGhAZcBkAGs
|
||||
AaQBngYAA/IDyAO8A8UMwwPEBsMD0QPUA9gDAAGzAYIBSgGpAXgBQAGoAXoBRQHCAYkBSAH+AcABewH9
|
||||
AcIBgAH2AcMBiwHqAcUBmgHKAskBywGiAZ0BwgF8AXMBxwFqAVwByQFZAUgBxwFKATYDuQMAA64DqAOq
|
||||
A7ADzQPOA9ED0gPaA8YDsgOqA6IDmgPRCQAD/gHAAcYByAF4AZMBewEGAZ4B1AEZAV0BZQFBAVgBOQE/
|
||||
AVIBHgEfARwBHgE+AVEBHQFuAWcBXwGhAZcBkAGhAZcBkAGhAZgBkQkAA/4D6QPXA9kDxgPDA8EDuQPB
|
||||
A8gG1APVAwABwAGeAXcBqwF3ATwBqgF7AUQBzgGYAVoB5gG2AYAB2QGzAYgB1wG8AaEB4gHTAcwB4AHJ
|
||||
AcUB1AGqAaQBxwGDAXkByQF3AWkBygFnAVYByAFeAUoDzQMAA74DpwOqA7gGygPQA98D2gPLA7gDsAOo
|
||||
A6UD3A8AAdEB0wHZAUMB6gH8AS0BzQHtAYYBXwE6AVUBWwEnAVkBcgFbAVUBTgFIAW8BaAFiAagBoQGb
|
||||
Ab8BuwG3A/8PAAPuA+0D5QPFA8MDygPCA8kD1wPiA/8DAAPkAeMC3gHqAeMB4QHgAtoB1AGbAZMB0QGR
|
||||
AYkB0wGIAX4B1QGAAXQB1wF8AW4B2AGYAY8B1AGRAYgBzgGCAXYBygFwAWIByQFsAVwD5AMAA+wD6APq
|
||||
A+QDwwO+A7oDtgO0A8IDvgO2A60DqgPoDwABagFmAXEB8QLzAdIBwAGtAcEBjgFhAbgBhQFZAU0BYAFL
|
||||
AWsBZQFfAbcBrwGoAakBogGbAe0C7BIAA8wD+QPmA9EDzwPFA8kD2wPXA/YPAAHjAeIB4wGoASsBGwG0
|
||||
ATUBJAG9AToBJwHBAS4BFwHLAVEBPwHLAXUBaQHLAXMBZgHKAXIBZAHKAW4BYAHJAWgBVwHtAeoB6QwA
|
||||
A+sDigOPA5IDjAOeA7ADrwOuA60DqgPrFQAD/AHzAfAB7QP+A/sD/wHfAd0B2wHCAcABvhsAA/4D+AP/
|
||||
A/0DAAPvA+YSAAPtAZoBFgEGAagBEwEAAbMBFgEBAb0BHAEEAb8BWgFIAc0BkgGHAdEBtAGuAdcByAHE
|
||||
Ad0C2gPsA/IMAAPyCX8DgwOiA74D0APZA+QD8AP1bAAD+AHFAcQBxQPkA/UD+wP9A/8bAAP6A9kD7QP4
|
||||
A/wD/gP//wD/AP8AIQAD9QPrA88DuAOsA98eAAP5A/QD5QPeA9oD6yQAA+8D6QPjA+okAAP1A/MD6gP0
|
||||
FQAD7gPRAawCrQG2ArQBzAHHAcYBxwLBAUkBkQFlAZUClAOJA6sD9A8AA/MD5QPbA90D4gPgA9AD0wPR
|
||||
A9oD+RIAA/UBqgGrAaoBUgFRAVMBOAE7ATcBGwEhARoDoQOkAZ0BngGfAbMCtAPkEgAD+gPeA8QDvgO6
|
||||
A9cD2APWA90D8AwAA+sByALFAegC3wH0AuoB8ALmAeEB2AHZAcwCxgFtAZoBeAGYApcDoAOOA4QD4AkA
|
||||
A/AD4QPqA+0D7APnA+ID0wPVA9cD0gPPA+wJAAPgAYoBiwGKASYBLgEgAwMBCwEPAQkBKQEgARoBUgFB
|
||||
ATUDswPBAYgCiQGEAYUBhgGbApwDrgkAA+0D0gO8A7QDtgO5A8AD3QPhA9ED0APWA9sJAAPNAdQC0AHl
|
||||
At4B8gLoAfYC7AHgAtkBoQKfAqoBqwPJA+YDxgOWA5IDrQP7AwAD5APlA+kD7QPuA+cD1wPaA+MD7APi
|
||||
A9QD0wPaA/0DAAOCAWABXgFdAWIBTAFCAYkBgQF6AcUBwwHCAdIC0AHPAc4BzQHKAsgBxALDAb4CvQO8
|
||||
AasCrAOFAqsBrAP6AwADzwPHA8IDzwPhA+UD5APjA+EG3wPaA88D2gP9AwADzwGuAqwBpQKmAsoBywHn
|
||||
AegB6gHWAdcC2QHWAdQB4gHeAdoBzAHIAcQBvAG5AbgBxQLEA+MDugOhA9UDAAPlA9oD2QPjA+wG5wPp
|
||||
A+ID3gPhA+oD3gPXA+YDAALjAeIB2QHXAdYB4gHfAd4B4gHfAd4B4QHeAt0B2wHaAdgC1QHUAdIB0QHP
|
||||
As0CswGyAZwBmwGcA7MDxAKEAYUDuwMAA+oD5wnpA+gD5gPlA+QD3APWA9wD4QPQA94GAAP3AuwB7QHw
|
||||
AfIB9AT1AvYD7QPlA90B1QLWAdAC0QKuAa0B1AHTAdQD2wP5BgAD+wPuA+8G8APuA+wD6QPnA+UD2wPm
|
||||
A+kD/AkAAe0C6wHpAuUB5wHkAeMBtAKzAbYBtAG1Aa8CrgGiAaABoQGfAqACmwGcA5sDoQO1A+8JAAPv
|
||||
BusD3APdA9sG1wbVA9cD3QPwDwAD8gHrAewB7QHzAfUB9gHSAdMB1AHRAtIB4gHkAeUB2ALZAdMC1APb
|
||||
A+0SAAP2A+8D8APnA+YD6wPoA+YD7QPyFQAB6wLpAeAC3QGzArIBnQGcAZ0DrAPXA+sbAAPwA+kD3APW
|
||||
A9sD6gPx/wD/AP8A/wCfAAP5AdsC2gG6ArcBngKZAa0BqAGqAb8BvgG/A+8bAAP8A+gD3gPVA9kD4AP1
|
||||
eAABrQGqAasBnAGXAZUBoQGbAZoBogGcApsBkgGRAbUBrQGuAaQBnwGgA8QD5hUAA9oD1AbWA9MD2wPX
|
||||
A+ED7BsAA/EBqgGpAacCaQFnA+8kAAP4A9kDyAP4GwAD1AG9AbwBvQHPAc0BzAHXAdYB1QHfAd4B3QGl
|
||||
AZ8BoAG0Aa4BsQG1AbABsQK3AbYD3wPuDwAD5gPfA+QD5gPpA9cG2wPeA+kD7g8AAtQB0wGGAYUBgwJv
|
||||
AW0CSgFLA1gDkwNeAYgBhwGGGAAD6wPPA8oDwQPGA9QDxgPRGAADzQPOAbkBuAG3A+AB3gLdAc4BzAHN
|
||||
AcgBxgHIAb8CvQOnA+wD9AP6DAAG5APeA+oD6QPkA+ID3wPaA+4D8AP8DAAD6AOWA9ID4wPkA8wD+QOV
|
||||
An4BfQP4EgAD8wPVA+YG6wPjA/ID1QPPA/sSAALAAcEBwwK/AbwBpwGfAakBewFrAZgBWAFEAYIBNAEc
|
||||
AXsBKQEQAawBhQF6A7UVAAbgA9kDzgPFA74DvAPRA94VAAPpA+cD6gboA88D6gPcA64D4QPvDwAD8wPs
|
||||
A+0G7APkA+0D6QPbA+oD9A8AAcYBtAGvAcMBZgFJAbMBWQE9AaQBTAEyAZ4BSwEyAYwBOQEgAYYBNAEa
|
||||
Aa0BhgF6ArQBsxUAA90DyQPGBsMDvwO+A9ED3hUAA+kB6wLqA+4D7APrA9AD1QPGA7gD9gP8DwAD8wPt
|
||||
A+4G7QPlA+YD4QPeA/oD/g8AAb0BqgGkAckBbAFOAbsBYAFDAa0BVAE4AaQBTwE0AZoBRgEsAZMBPwEl
|
||||
Aa8BiAF7AbYBtQGzFQAD2QPKA8cGxAPCA8AD0QPdFQAD6QPuA/IG8APRA78DsgO7FQAD8wPuCe8D5QPg
|
||||
A9wD3xUAAbgBoAGYAdEBcAFTAcQBZwFKAbsBYwFHAa4BVQE5AakBUwE5AaMBSwEwAa4BhAF3AbUBtAGx
|
||||
FQAD1wPLA8kDyAPFA8QDwwPQA90VAAPpA/ED9gb0A9IDrQOqA7wVAAPzA+8D8QbwA+YD2wPaA98VAAG3
|
||||
AZkBkQHYAXkBWwHPAXEBUwHLAXUBWwG9AWEBRQG4AV4BQwGzAVkBPQGtAYEBcwK0AbEVAAPVA80DywPM
|
||||
BscDxQPPA90VAAPpA/QD+gb4A88DqQOqA70VAAPzA/AD8gbxA+UD2QPaA+AVAAG9AZ8BlgHlAY8BdQHe
|
||||
AYcBbAHXAYEBZgHNAXUBWgHHAW8BUwHFAWwBUAGxAYcBeQG4AbcBthUAA9cD0wPRA88DzAPLA8oD0APe
|
||||
FQAD6QL1AfQD/QP8A/0DzgOpA6oDvhUAA/MD8AnzA+QD2QPaA+ASAAP5AcoBqQGfAe0BnQGFAesBogGL
|
||||
AeIBkgF5AeABkQF4AdgBgQFmAdUBfgFjAbkBjwGCAboBuQG4EgAD/APaA9YD2AbTA88DzgPSA98VAAPp
|
||||
A+8BdwGcAXkBrQG6Aa4DzgPTA6kDqgO+FQAD8wPuA9QD3QPkA+YD2QPaA+ASAAPzAdgBtgGrAfIBsgGf
|
||||
AfIBtQGiAewBpQGOAesBngGIAeMBjAFyAeIBiAFuAcABlQGIArwBuxIAA/gD3QPcA90D2APXA9ID0QPU
|
||||
A98VAAPqA/IC7gHvBugD5wO2A6sDwBUAA/QD7wPuCewD3QPaA+ESAAPyAdoBuQGuAfUBxAG0AfQBwwGy
|
||||
AfIBtwGlAfABpQGPAe4BlQF6Ae0BkQF1AcEBlgGHAr0BvBIAA/cD3gbhA90D2QPUA9MD1APgFQAD8APo
|
||||
AdcC1gG5AbgBtwGtAawBqgGsAasBqQG5AbgBtwK1AbQDzRUAA/YD7APnA94G2gPeA90D5BIAA/EBswGk
|
||||
AaEBrAGgAZsBowGbAZkBoAGcAZsBpQGkAaIBqwGsAasBrgKvAa0BrgGtA7QSAAP3A9gD1wbWA9gD2gPb
|
||||
A9oD3R4AA/cD9SoAA/sD+h4AA/0B1AHMAccByAHDAb8BwwHAAb0BcQJuAdIBzgHJAcQBvQG5AckBwQG9
|
||||
AeUC4wP8EgAD/gPkA+ED4APKA+QD3wPgA+sD/v8A/wAD9APTA9cDzAPBA+gD9QP2GAAD+QPmA+cD5APg
|
||||
A/IG+hgAA/EBqwGlAaQBzAG/AbgBqAKmJAAD+APYA+AD2RUAA/AD8gP4AwAD9QO9A88D3APNA78GpgPH
|
||||
A+kGAAb3A/sDAAP5A+AD5APpA+QD4AbYA+ID7AkAA/IB2QLYAbcCsgHSAswB/AH5AfUB7AHiAdgB5QHW
|
||||
AcQB3gHKAbEBhgGAAXsD9RIAA/cD7APcA+MD8gPqA+YD4gPOA/oMAAHQAs8BhAKDA3gDlQO9A+4DswO5
|
||||
A7sDogN6A5sDxAPaA+0DAAPlA88DzQPUA98D9QPcA94D3wPYA80D1QPhA+gD9AMAAcoDyQLDAegC4wHY
|
||||
AtcDhgN1AYUCgwGHAX4BeAFNAT4BOgE8ASkBJQFEATYBNQE6AjYDtAkAA+MD4QPrA+cD0APMBs8DvwO7
|
||||
Br4D4wkAAcICwQGbApYDigOdA54DrgO3ArABsQKQAZIBlAGYAZwBswKwAcMBkgGLAcEBnwGbA/MGAAPh
|
||||
A9QD0QbWA9sD3QPbA9ID1QPbA9QD2AP5BgAB5wLiAd0C1gHTAc8B0AGWApQBYAJcAUgCQAFJAT4BPAFH
|
||||
AToBNgFEATMBLwFKATwBOQFUAksBYgFMATcBjgKNA9QGAAPqA+cD5QPVA8YDwAO/A74DvQO/BsID0gPm
|
||||
BgABvwK+AZwClwOeAp0BngGGAZYBkAKgAaIBnwF3AXUBkgEyASoBlgEYAREBpQEfARABrgEoARUBtgEt
|
||||
ARoBwAF2AWwD4QYAA98D1QbWA9MD1wPNA8EGvQO+A78DzgPqCQAD/AHIAsMBZgFhAWIBTQFIAUcBWAFR
|
||||
AVABaQFjAWIBXgJaAUECPwFEAkEBVQJWAUkBUAFRAWgBWQFUAc0CzAkAA/4D4QPHA8EDwwPHA8UGwAPE
|
||||
A8MDxQPkBgABuAK3AZsClwOvAbEBsgGzAYYBDwEHAYcBEgELAYQBDAEBAZMBDwEAAaMBEwEAAcMBSgE4
|
||||
AdEBVQFAAdgBWQFEAdUBbAFZAcoCywYAA90D1APbA9wDugO7A7oDuwO8A8QDxgPHA8sD4w8AA/wD+QPC
|
||||
AVsBXwFgA2QBnAFoAVEBxAFMARwBzQFBAQYBxgE6AQUBzwFIAQ0B1QHMAccPAAP+A/wD4QPGA8cDyAPE
|
||||
A8IDwQPDA+QGAAO2AZ0CmgO4A70BlQE3ATABlwEwASkBkAEPAQIBpAETAQABtQEVAQAB4AF8AWsB6AGA
|
||||
AW4B7gGFAXIB7AGAAWwBtwK4BgAD3QPVA90D3wPAA74DuwO8A70DzgPQA9ED0APeEgAB5gHhAeABrwEp
|
||||
AQYBrAEvAQ8BtAE6ARgBvgFDAR8BxwFJASIB0AFaATEB0QFTASsB1wFVASkBzQG5AbASAAPwA74DvwPB
|
||||
A8IDwwPHA8UDxgPeBgABtAK1AZgBlgGXA70DxgGcAVUBUQGsAVIBSQGfAREBAAGyARQBAAHIARsBAwHx
|
||||
AaYBmQH3AacBmQH8AasBnQH+AaMBkQG1AbYBtwYAA90D1APfA+IDxwPFA7wDvQO/BtoD2wPZA90SAAHv
|
||||
AfIB8wG2AUcBKgG3AUsBLwG4AUABIgHBAUQBJAHMAUoBKQHeAXYBVgHjAXsBWAHlAXgBUQHQAaIBjxIA
|
||||
A/QGwwPBA8IDxAPNA84DzQPYBgAD3QHRAdIB0wHLAcwBzQHMAs0BqAF8AXkBoQEpARwBswEWAQAB0QEd
|
||||
AQAB7AEwAQ4B/wHHAboB/wHMAbwB/wHRAb8B/wHPAbkBwALBBgAD7QPoBuQDzwO/A70DvwPDA+ID4wPl
|
||||
A+QD4BUAAb0BXwFHAcEBXQFFAcMBTgEzAc0BUgE1AdkBYgFDAekBlgF8Ae0BnAF/Ae4BmAF3AeABlQF1
|
||||
A/oSAAbHA8UDxgPJA9QD1gPVA9QD/A8AAb0BrQGrAaMBEwEBAb4BGQEAAdwBIAEAAfkBawFOAf8B3gHV
|
||||
Af8B4QHXAf8B5gHbAf8B5wHdAdwC2wP9DwAD2wO8A74DwAPMA+kD6gPrA+wD6AP+EgABwgF1AWEBwQFa
|
||||
AUIBzwFeAUMB3wFmAUgB7QGEAWkB9AG3AaMB8gG0AZwB8QGzAZcB6wGkAX4D+RIAA80DxgPIA8oD0QPd
|
||||
BtwD2AP8DwACzgHPAaYBEgEAAcQBGwEAAeMBHwEAAf8BsAGgAfsBzgG/Ae8BxgG1AeoBxQG1AegBzwHF
|
||||
Ae8B7gHvA/oPAAPkA7wDvgPAA9wD5APiA+ED5APzA/wSAAHCAYsBfQHKAWMBTQHaAW0BVQHpAXQBWQH3
|
||||
AbYBpAH2AcwBvAH1AcUBsgHzAcMBrwH0AbwBoAHiAuESAAPSA8kDywPNA94D5AbhA94D6g8AAeAC4QG0
|
||||
AZ0BnAHKAcMBwgHjAeQB5QHvAvAD8h4AA+8D2APiA+sG9yEAAcYBrAGmAc4BbgFaAd8BfAFnAfABgQFq
|
||||
AfcBzgHCAekBxQG4AdoBvgGzAdUBxQG+AdoB1QHSA98SAAPbA8sDzgPQA+QD4QPfA+ED5gPpcgAC5AHj
|
||||
Ad8B1QHUAe0B7AHrA/UD9iEAA+8D5wPuBvr/AJAAAUIBTQE+BwABPgMAASgDAAFAAwABUAMAAQEBAAEB
|
||||
BQABgAECFgAD/4EABf8BBwH/AQcB+QH/AfkB/wH8AQMB/AEDAfAB/wHwAf8B/AEBAfwBAQHgAX8B4AF/
|
||||
AfABAAHwAQAB4AEfAeABHwQAAcABDwHAAQ8EAAGAAQMBgAEDBQABAQEAAQEIAAGAAQABgAEAAcABAAHA
|
||||
AQABgAEAAYABAAHgAQAB4AEAAYABAAGAAQAB+AEAAfgBAAGAAQABgAEAAfgBAQH4AQEB8AEAAfABAAH+
|
||||
AQMB/gETAfABAAHwAQAE/wHwAR8B8AEfIP8B+AEfAfgBHwH+AR8B/gEfAcABBwHAAQcB4AEHAeABBwGA
|
||||
AQMBgAEDAYABAwGAAQMBgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAHAAQABwAEAAeABAAHg
|
||||
AQAB+AEBAfgBAQH8AQcB/AEHMP8B/AEHAfwBBwT/AfgBAwH4AQMB/gEfAf4BHwHwAQEB8AEBAfABDwHw
|
||||
AQ8B8AEAAfABAAHwAQMB8AEDAfABBwHwAQcB8AEBAfABAQHwAQcB8AEHAfABAQHwAQEB8AEHAfABBwHw
|
||||
AQcB8AEHAfABBwHwAQcB8AEHAfABBwHwAQcB8AEHAfABBwHwAQcB8AEHAfABBwHwAQcB8AEHAeABBwHg
|
||||
AQcB8AEHAfABBwHgAQcB4AEHAfABBwHwAQcB4AEHAeABBwHwAQcB8AEHAeABBwHgAQcB/gF/Af4BfwHg
|
||||
AQcB4AEHFP8B/gEBAf4BAQH+AR8B/gEfAcQBAAHEAQAB4AEHAeABBwGAAQABgAEAAYABAwGAAQMBgAEB
|
||||
AYABAQGAAQEBgAEBAYABAQGAAQEBwAEBAcABAQGAAQEBgAEBAfABAQHwAQEBgAEBAYABAQH4AQEB+AEB
|
||||
AYABAQGAAQEB+AEBAfgBAQGAAQEBgAEBAfwBAAH8AQAB+AEAAfgBAAH8AQAB/AEAAfgBAAH4AQAB/AEA
|
||||
AfwBAAH4AR8B+AEfAfwBAAH8AQAE/wH8AR8B/AEfEP8L
|
||||
</value>
|
||||
</data>
|
||||
<data name="devicesListView.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 4</value>
|
||||
</data>
|
||||
<data name="devicesListView.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>446, 210</value>
|
||||
</data>
|
||||
<data name="devicesListView.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="devicesListView.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>devicesListView.Name" xml:space="preserve">
|
||||
<value>devicesListView</value>
|
||||
</data>
|
||||
<data name=">>devicesListView.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>devicesListView.Parent" xml:space="preserve">
|
||||
<value>devicesPanel</value>
|
||||
</data>
|
||||
<data name=">>devicesListView.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="noSearchResultsLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
@@ -1336,7 +1570,7 @@
|
||||
<value>2, 88</value>
|
||||
</data>
|
||||
<data name="noSearchResultsLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>458, 52</value>
|
||||
<value>454, 52</value>
|
||||
</data>
|
||||
<data name="noSearchResultsLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
@@ -1360,7 +1594,7 @@
|
||||
<value>devicesPanel</value>
|
||||
</data>
|
||||
<data name=">>noSearchResultsLabel.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="noDevicesLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
@@ -1375,7 +1609,7 @@
|
||||
<value>2, 88</value>
|
||||
</data>
|
||||
<data name="noDevicesLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>458, 52</value>
|
||||
<value>454, 52</value>
|
||||
</data>
|
||||
<data name="noDevicesLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@@ -1396,7 +1630,7 @@
|
||||
<value>devicesPanel</value>
|
||||
</data>
|
||||
<data name=">>noDevicesLabel.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="devicesPanel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
@@ -1465,7 +1699,7 @@
|
||||
<value>2, 79</value>
|
||||
</data>
|
||||
<data name="noMapLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>458, 52</value>
|
||||
<value>454, 52</value>
|
||||
</data>
|
||||
<data name="noMapLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@@ -1953,7 +2187,7 @@ Click "Add" to get started.</value>
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>panel5.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<metadata name="stateClearTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
@@ -5535,6 +5769,72 @@ Click "Add" to get started.</value>
|
||||
<data name=">>saveMapFileDialog.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>devicesImageList.Name" xml:space="preserve">
|
||||
<value>devicesImageList</value>
|
||||
</data>
|
||||
<data name=">>devicesImageList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>nameColumnHeader.Name" xml:space="preserve">
|
||||
<value>nameColumnHeader</value>
|
||||
</data>
|
||||
<data name=">>nameColumnHeader.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>stateColumnHeader.Name" xml:space="preserve">
|
||||
<value>stateColumnHeader</value>
|
||||
</data>
|
||||
<data name=">>stateColumnHeader.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>httpToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>httpToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>httpToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>httpsToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>httpsToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>httpsToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>rdpToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>rdpToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>rdpToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>sshToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>sshToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>sshToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>scpToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>scpToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>scpToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>toolStripMenuItem3.Name" xml:space="preserve">
|
||||
<value>toolStripMenuItem3</value>
|
||||
</data>
|
||||
<data name=">>toolStripMenuItem3.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>addMapToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>addMapToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>addMapToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>addRelayMapToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>addRelayMapToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>addRelayMapToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>MainForm</value>
|
||||
</data>
|
||||
|
||||
@@ -521,10 +521,12 @@ namespace MeshCentralRouter
|
||||
|
||||
private void ProcessWsBuffer(byte[] data, int offset, int len, int op)
|
||||
{
|
||||
//parent.Debug("#" + counter + ": Websocket frag data: " + acclen);
|
||||
if ((tunneling == false) && (data[offset] == 'c'))
|
||||
int opcode = op & 0x0F; // 1 == String, 2 == Binary
|
||||
|
||||
parent.Debug("#" + counter + ": Websocket frag data: " + acclen + ", opcode: " + opcode);
|
||||
if ((tunneling == false) && (opcode == 1) && (data[offset] == 'c'))
|
||||
{
|
||||
parent.Debug("#" + counter + ": Websocket get server 'c' confirmation.");
|
||||
parent.Debug("#" + counter + ": Websocket got server 'c' confirmation.");
|
||||
|
||||
// Server confirmed connection, start reading the TCP stream
|
||||
//Console.Write("WS-Relay Connect\r\n");
|
||||
@@ -541,7 +543,12 @@ namespace MeshCentralRouter
|
||||
tunneling = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if ((tunneling == true) && (opcode == 1))
|
||||
{
|
||||
string text = UTF8Encoding.UTF8.GetString(data, offset, len);
|
||||
parent.Debug("#" + counter + ": Websocket got text frame: " + text);
|
||||
}
|
||||
else if ((tunneling == true) && (opcode == 2))
|
||||
{
|
||||
if (client != null)
|
||||
{
|
||||
@@ -552,10 +559,14 @@ namespace MeshCentralRouter
|
||||
else if (uclient != null)
|
||||
{
|
||||
// Write: WS --> UDP
|
||||
if (uendpoint != null) {
|
||||
if (offset == 0) {
|
||||
if (uendpoint != null)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
try { uclient.Send(data, len, uendpoint); } catch (Exception) { }
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
byte[] data2 = new byte[len];
|
||||
Array.Copy(data, offset, data2, 0, len);
|
||||
try { uclient.Send(data2, len, uendpoint); } catch (Exception) { }
|
||||
|
||||
17
NodeClass.cs
17
NodeClass.cs
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MeshCentralRouter
|
||||
{
|
||||
@@ -16,10 +17,24 @@ namespace MeshCentralRouter
|
||||
public int conn;
|
||||
public int rdpport;
|
||||
public ulong rights;
|
||||
public MeshClass mesh;
|
||||
public ListViewItem listitem;
|
||||
public DeviceUserControl control;
|
||||
public Dictionary<string, ulong> links;
|
||||
|
||||
public override string ToString() { return name; }
|
||||
|
||||
public string getStateString()
|
||||
{
|
||||
string status = "";
|
||||
if ((conn & 1) != 0) { if (status.Length > 0) { status += ", "; } status += Properties.Resources.Agent; }
|
||||
if ((conn & 2) != 0) { if (status.Length > 0) { status += ", "; } status += Properties.Resources.CIRA; }
|
||||
if ((conn & 4) != 0) { if (status.Length > 0) { status += ", "; } status += Properties.Resources.AMT; }
|
||||
if ((conn & 8) != 0) { if (status.Length > 0) { status += ", "; } status += Properties.Resources.Relay; }
|
||||
if ((conn & 16) != 0) { if (status.Length > 0) { status += ", "; } status += Properties.Resources.MQTT; }
|
||||
if (status == "") { status = Properties.Resources.Offline; }
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
||||
public class MeshClass
|
||||
|
||||
Reference in New Issue
Block a user