More ClickOnce fixes.
This commit is contained in:
parent
3801159200
commit
951e6236f9
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -29,7 +29,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
|
||||||
obj.remoteaddr = obj.ws._socket.remoteAddress;
|
obj.remoteaddr = obj.ws._socket.remoteAddress;
|
||||||
obj.useSHA386 = false;
|
obj.useSHA386 = false;
|
||||||
if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); }
|
if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); }
|
||||||
ws._socket.setKeepAlive(true, 0); // Set TCP keep alive
|
ws._socket.setKeepAlive(true, 240000); // Set TCP keep alive, 4 minutes
|
||||||
|
|
||||||
// Send a message to the mesh agent
|
// Send a message to the mesh agent
|
||||||
obj.send = function (data) { try { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } } catch (e) { } }
|
obj.send = function (data) { try { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } } catch (e) { } }
|
||||||
|
@ -127,12 +127,12 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
|
||||||
} else {
|
} else {
|
||||||
// Send the next block to the agent
|
// Send the next block to the agent
|
||||||
obj.agentUpdate.ptr += len;
|
obj.agentUpdate.ptr += len;
|
||||||
//console.log("Agent update send next block: " + len);
|
//console.log("Agent update send next block", obj.agentUpdate.ptr, len);
|
||||||
if (len == agentUpdateBlockSize) { obj.ws.send(obj.agentUpdate.buf); } else { obj.ws.send(obj.agentUpdate.buf.slice(0, len + 4)); } // Command 14, mesh agent next data block
|
if (len == agentUpdateBlockSize) { obj.ws.send(obj.agentUpdate.buf); } else { obj.ws.send(obj.agentUpdate.buf.slice(0, len + 4)); } // Command 14, mesh agent next data block
|
||||||
|
|
||||||
if (len < agentUpdateBlockSize) {
|
if (len < agentUpdateBlockSize) {
|
||||||
//console.log("Agent update sent");
|
console.log("Agent update sent");
|
||||||
obj.send(obj.common.ShortToStr(13) + obj.common.ShortToStr(0) + obj.common.hex2rstr(obj.agentInfo.hash)); // Command 13, end mesh agent download, send agent SHA384 hash
|
obj.send(obj.common.ShortToStr(13) + obj.common.ShortToStr(0) + obj.common.hex2rstr(obj.agentExeInfo.hash)); // Command 13, end mesh agent download, send agent SHA384 hash
|
||||||
obj.fs.close(obj.agentUpdate.fd);
|
obj.fs.close(obj.agentUpdate.fd);
|
||||||
obj.agentUpdate = null;
|
obj.agentUpdate = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -296,55 +296,56 @@ function CreateMeshCentralServer() {
|
||||||
|
|
||||||
// Load the list of mesh agents and install scripts
|
// Load the list of mesh agents and install scripts
|
||||||
if (obj.args.noagentupdate == 1) { for (var i in meshAgentsArchitectureNumbers) { meshAgentsArchitectureNumbers[i].update = false; } }
|
if (obj.args.noagentupdate == 1) { for (var i in meshAgentsArchitectureNumbers) { meshAgentsArchitectureNumbers[i].update = false; } }
|
||||||
obj.updateMeshAgentsTable();
|
obj.updateMeshAgentsTable(function () {
|
||||||
obj.updateMeshAgentInstallScripts();
|
obj.updateMeshAgentInstallScripts();
|
||||||
|
|
||||||
// Setup and start the web server
|
// Setup and start the web server
|
||||||
require('crypto').randomBytes(48, function (err, buf) {
|
require('crypto').randomBytes(48, function (err, buf) {
|
||||||
// Setup Mesh Multi-Server if needed
|
// Setup Mesh Multi-Server if needed
|
||||||
obj.multiServer = require('./multiserver.js').CreateMultiServer(obj, obj.args);
|
obj.multiServer = require('./multiserver.js').CreateMultiServer(obj, obj.args);
|
||||||
if (obj.multiServer != null) {
|
if (obj.multiServer != null) {
|
||||||
obj.serverId = obj.multiServer.serverid;
|
obj.serverId = obj.multiServer.serverid;
|
||||||
for (var serverid in obj.config.peers.servers) { obj.peerConnectivityByNode[serverid] = {}; }
|
for (var serverid in obj.config.peers.servers) { obj.peerConnectivityByNode[serverid] = {}; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the server is set to "nousers", allow only loopback unless IP filter is set
|
// If the server is set to "nousers", allow only loopback unless IP filter is set
|
||||||
if ((obj.args.nousers == true) && (obj.args.userallowedip == null)) { obj.args.userallowedip = "::1,127.0.0.1"; }
|
if ((obj.args.nousers == true) && (obj.args.userallowedip == null)) { obj.args.userallowedip = "::1,127.0.0.1"; }
|
||||||
|
|
||||||
if (obj.args.secret) {
|
if (obj.args.secret) {
|
||||||
// This secret is used to encrypt HTTP session information, if specified, user it.
|
// This secret is used to encrypt HTTP session information, if specified, user it.
|
||||||
obj.webserver = require('./webserver.js').CreateWebServer(obj, obj.db, obj.args, obj.args.secret, obj.certificates);
|
obj.webserver = require('./webserver.js').CreateWebServer(obj, obj.db, obj.args, obj.args.secret, obj.certificates);
|
||||||
} else {
|
} else {
|
||||||
// If the secret is not specified, generate a random number.
|
// If the secret is not specified, generate a random number.
|
||||||
obj.webserver = require('./webserver.js').CreateWebServer(obj, obj.db, obj.args, buf.toString('hex').toUpperCase(), obj.certificates);
|
obj.webserver = require('./webserver.js').CreateWebServer(obj, obj.db, obj.args, buf.toString('hex').toUpperCase(), obj.certificates);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup and start the redirection server if needed
|
// Setup and start the redirection server if needed
|
||||||
if ((obj.args.redirport != null) && (typeof obj.args.redirport == 'number') && (obj.args.redirport != 0)) {
|
if ((obj.args.redirport != null) && (typeof obj.args.redirport == 'number') && (obj.args.redirport != 0)) {
|
||||||
obj.redirserver = require('./redirserver.js').CreateRedirServer(obj, obj.db, obj.args, obj.certificates);
|
obj.redirserver = require('./redirserver.js').CreateRedirServer(obj, obj.db, obj.args, obj.certificates);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup the Intel AMT event handler
|
// Setup the Intel AMT event handler
|
||||||
obj.amtEventHandler = require('./amtevents.js').CreateAmtEventsHandler(obj);
|
obj.amtEventHandler = require('./amtevents.js').CreateAmtEventsHandler(obj);
|
||||||
|
|
||||||
// Setup the Intel AMT local network scanner
|
// Setup the Intel AMT local network scanner
|
||||||
if (obj.args.wanonly != true) {
|
if (obj.args.wanonly != true) {
|
||||||
obj.amtScanner = require('./amtscanner.js').CreateAmtScanner(obj).start();
|
obj.amtScanner = require('./amtscanner.js').CreateAmtScanner(obj).start();
|
||||||
obj.meshScanner = require('./meshscanner.js').CreateMeshScanner(obj).start();
|
obj.meshScanner = require('./meshscanner.js').CreateMeshScanner(obj).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup and start the MPS server
|
// Setup and start the MPS server
|
||||||
if (obj.args.lanonly != true) {
|
if (obj.args.lanonly != true) {
|
||||||
obj.mpsserver = require('./mpsserver.js').CreateMpsServer(obj, obj.db, obj.args, obj.certificates);
|
obj.mpsserver = require('./mpsserver.js').CreateMpsServer(obj, obj.db, obj.args, obj.certificates);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start periodic maintenance
|
// Start periodic maintenance
|
||||||
obj.maintenanceTimer = setInterval(obj.maintenanceActions, 1000 * 60 * 60); // Run this every hour
|
obj.maintenanceTimer = setInterval(obj.maintenanceActions, 1000 * 60 * 60); // Run this every hour
|
||||||
|
|
||||||
// Dispatch an event that the server is now running
|
// Dispatch an event that the server is now running
|
||||||
obj.DispatchEvent(['*'], obj, { etype: 'server', action: 'started', msg: 'Server started' })
|
obj.DispatchEvent(['*'], obj, { etype: 'server', action: 'started', msg: 'Server started' })
|
||||||
|
|
||||||
obj.debug(1, 'Server started');
|
obj.debug(1, 'Server started');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -728,7 +729,9 @@ function CreateMeshCentralServer() {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Update the list of available mesh agents
|
// Update the list of available mesh agents
|
||||||
obj.updateMeshAgentsTable = function () {
|
obj.updateMeshAgentsTable = function (func) {
|
||||||
|
var archcount = 0;
|
||||||
|
for (var archid in meshAgentsArchitectureNumbers) { archcount++; }
|
||||||
for (var archid in meshAgentsArchitectureNumbers) {
|
for (var archid in meshAgentsArchitectureNumbers) {
|
||||||
var agentpath = obj.path.join(__dirname, 'agents', meshAgentsArchitectureNumbers[archid].localname);
|
var agentpath = obj.path.join(__dirname, 'agents', meshAgentsArchitectureNumbers[archid].localname);
|
||||||
var stream = null;
|
var stream = null;
|
||||||
|
@ -738,6 +741,7 @@ function CreateMeshCentralServer() {
|
||||||
stream.on('error', function (data) {
|
stream.on('error', function (data) {
|
||||||
// If there is an error reading this file, make sure this agent is not in the agent table
|
// If there is an error reading this file, make sure this agent is not in the agent table
|
||||||
if (obj.meshAgentBinaries[this.info.id] != null) { delete obj.meshAgentBinaries[this.info.id]; }
|
if (obj.meshAgentBinaries[this.info.id] != null) { delete obj.meshAgentBinaries[this.info.id]; }
|
||||||
|
if ((--archcount == 0) && (func != null)) { func(); }
|
||||||
});
|
});
|
||||||
stream.on('end', function () {
|
stream.on('end', function () {
|
||||||
// Add the agent to the agent table with all information and the hash
|
// Add the agent to the agent table with all information and the hash
|
||||||
|
@ -748,11 +752,12 @@ function CreateMeshCentralServer() {
|
||||||
var stats = null;
|
var stats = null;
|
||||||
try { stats = obj.fs.statSync(this.agentpath) } catch (e) { }
|
try { stats = obj.fs.statSync(this.agentpath) } catch (e) { }
|
||||||
if (stats != null) { obj.meshAgentBinaries[this.info.id].size = stats.size; }
|
if (stats != null) { obj.meshAgentBinaries[this.info.id].size = stats.size; }
|
||||||
|
if ((--archcount == 0) && (func != null)) { func(); }
|
||||||
});
|
});
|
||||||
stream.info = meshAgentsArchitectureNumbers[archid];
|
stream.info = meshAgentsArchitectureNumbers[archid];
|
||||||
stream.agentpath = agentpath;
|
stream.agentpath = agentpath;
|
||||||
stream.hash = obj.crypto.createHash('sha384', stream);
|
stream.hash = obj.crypto.createHash('sha384', stream);
|
||||||
} catch (e) { }
|
} catch (e) { if ((--archcount == 0) && (func != null)) { func(); } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj.id == null) { try { obj.close(); } catch (e) { } return null; } // Attempt to connect without id, drop this.
|
if (obj.id == null) { try { obj.close(); } catch (e) { } return null; } // Attempt to connect without id, drop this.
|
||||||
ws._socket.setKeepAlive(true, 0); // Set TCP keep alive
|
ws._socket.setKeepAlive(true, 240000); // Set TCP keep alive
|
||||||
|
|
||||||
// Validate that the id is valid, we only need to do this on non-authenticated sessions.
|
// Validate that the id is valid, we only need to do this on non-authenticated sessions.
|
||||||
// TODO: Figure out when this needs to be done.
|
// TODO: Figure out when this needs to be done.
|
||||||
|
|
|
@ -59,7 +59,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) {
|
||||||
}
|
}
|
||||||
|
|
||||||
user.subscriptions = obj.parent.subscribe(user._id, ws); // Subscribe to events
|
user.subscriptions = obj.parent.subscribe(user._id, ws); // Subscribe to events
|
||||||
obj.ws._socket.setKeepAlive(true, 0); // Set TCP keep alive
|
obj.ws._socket.setKeepAlive(true, 240000); // Set TCP keep alive
|
||||||
|
|
||||||
// When data is received from the web socket
|
// When data is received from the web socket
|
||||||
ws.on('message', function (msg) {
|
ws.on('message', function (msg) {
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<assemblyIdentity name="MeshMiniRouter.application" version="2.0.0.10" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<description asmv2:publisher="Meshcentral.com" asmv2:product="Meshcentral Mini-Router" asmv2:supportUrl="https://meshcentral.com/" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<deployment install="false" mapFileExtensions="true" trustURLParameters="true" />
|
||||||
|
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
|
||||||
|
</compatibleFrameworks>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" codebase="Application Files\MeshMiniRouter_2_0_0_10\MeshMiniRouter.exe.manifest" size="4712">
|
||||||
|
<assemblyIdentity name="MeshMiniRouter.exe" version="2.0.0.10" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>nAtlMki8bI8WHgD0B1tC4ZVmxIYy41iUEGTj8OMxNmU=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
</asmv1:assembly>
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<section name="MeshMiniRouterTool.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||||
|
<section name="MeshMiniRouterTool.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||||
|
<section name="MeshNetworkRouterTool.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<userSettings>
|
||||||
|
<MeshMiniRouterTool.Properties.Settings>
|
||||||
|
<setting name="PuttyPath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="Upgraded" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="UltraVncPath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="HybridCloudManager" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="TightVncPath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
<setting name="WinSCPPath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
</MeshMiniRouterTool.Properties.Settings>
|
||||||
|
<MeshMiniRouterTool.Settings1>
|
||||||
|
<setting name="puttypath" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
</MeshMiniRouterTool.Settings1>
|
||||||
|
<MeshNetworkRouterTool.Properties.Settings>
|
||||||
|
<setting name="Server" serializeAs="String">
|
||||||
|
<value/>
|
||||||
|
</setting>
|
||||||
|
</MeshNetworkRouterTool.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
|
Binary file not shown.
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<asmv1:assemblyIdentity name="MeshMiniRouter.exe" version="2.0.0.10" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
|
||||||
|
<description asmv2:iconFile="MeshMiniRouter.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<application />
|
||||||
|
<entryPoint>
|
||||||
|
<assemblyIdentity name="MeshMiniRouter" version="1.0.6507.17826" language="neutral" processorArchitecture="msil" />
|
||||||
|
<commandLine file="MeshMiniRouter.exe" parameters="" />
|
||||||
|
</entryPoint>
|
||||||
|
<trustInfo>
|
||||||
|
<security>
|
||||||
|
<applicationRequestMinimum>
|
||||||
|
<PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="Internet" Description="Default rights given to Internet applications" Unrestricted="true" ID="Custom" SameSite="site" />
|
||||||
|
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||||
|
</applicationRequestMinimum>
|
||||||
|
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<!-- UAC Manifest Options
|
||||||
|
If you want to change the Windows User Account Control level replace the
|
||||||
|
requestedExecutionLevel node with one of the following.
|
||||||
|
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||||
|
|
||||||
|
Specifying requestedExecutionLevel node will disable file and registry virtualization.
|
||||||
|
If you want to utilize File and Registry Virtualization for backward
|
||||||
|
compatibility then delete the requestedExecutionLevel node.
|
||||||
|
-->
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
<dependency>
|
||||||
|
<dependentOS>
|
||||||
|
<osVersionInfo>
|
||||||
|
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
|
||||||
|
</osVersionInfo>
|
||||||
|
</dependentOS>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
||||||
|
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MeshMiniRouter.exe" size="193536">
|
||||||
|
<assemblyIdentity name="MeshMiniRouter" version="1.0.6507.17826" language="neutral" processorArchitecture="msil" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>HHqrJ3vBMkqfPDfdzKBtZW4mtE/Sg5O5LdPB6KmBv3E=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<file name="MeshMiniRouter.exe.config" size="2397">
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>UylUFD4/o0KBti+5/eodTDgq4BkUJD0J0aUXNd3yHbY=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</file>
|
||||||
|
<file name="MeshMiniRouter.ico" size="1078">
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>mkjbDQuo7YXa8wZxdKEu/ECXrORwwtpRgNj8NBKbzHo=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</file>
|
||||||
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
|
<application>
|
||||||
|
<!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->
|
||||||
|
<!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
|
||||||
|
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
|
||||||
|
</application>
|
||||||
|
</compatibility>
|
||||||
|
</asmv1:assembly>
|
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -1,20 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
<assemblyIdentity name="MeshMiniRouter.application" version="2.0.0.7" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
<assemblyIdentity name="MeshMiniRouter.application" version="2.0.0.10" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
<description asmv2:publisher="Meshcentral.com" asmv2:product="Meshcentral Mini-Router" asmv2:supportUrl="https://meshcentral.com/" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
<description asmv2:publisher="Meshcentral.com" asmv2:product="Meshcentral Mini-Router" asmv2:supportUrl="https://meshcentral.com/" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
<deployment install="false" mapFileExtensions="true" trustURLParameters="true" />
|
<deployment install="false" mapFileExtensions="true" trustURLParameters="true" />
|
||||||
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
<framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
|
<framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
|
||||||
</compatibleFrameworks>
|
</compatibleFrameworks>
|
||||||
<dependency>
|
<dependency>
|
||||||
<dependentAssembly dependencyType="install" codebase="Application Files\MeshMiniRouter_2_0_0_7\MeshMiniRouter.exe.manifest" size="4711">
|
<dependentAssembly dependencyType="install" codebase="Application Files\MeshMiniRouter_2_0_0_10\MeshMiniRouter.exe.manifest" size="4712">
|
||||||
<assemblyIdentity name="MeshMiniRouter.exe" version="2.0.0.7" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
|
<assemblyIdentity name="MeshMiniRouter.exe" version="2.0.0.10" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
|
||||||
<hash>
|
<hash>
|
||||||
<dsig:Transforms>
|
<dsig:Transforms>
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
</dsig:Transforms>
|
</dsig:Transforms>
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
<dsig:DigestValue>VsPkLYR71TSqI8oGBBeXzb5hGi4R2xtQaGQJ0zmsTic=</dsig:DigestValue>
|
<dsig:DigestValue>nAtlMki8bI8WHgD0B1tC4ZVmxIYy41iUEGTj8OMxNmU=</dsig:DigestValue>
|
||||||
</hash>
|
</hash>
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -59,7 +59,7 @@ FONT.key {font-weight: bold; color: darkgreen}
|
||||||
<TR><TD ALIGN="LEFT"><TABLE CELLPADDING="2" CELLSPACING="0" BORDER="0" WIDTH="540"><TR><TD WIDTH="496">
|
<TR><TD ALIGN="LEFT"><TABLE CELLPADDING="2" CELLSPACING="0" BORDER="0" WIDTH="540"><TR><TD WIDTH="496">
|
||||||
|
|
||||||
<!-- Begin AppInfo -->
|
<!-- Begin AppInfo -->
|
||||||
<TABLE><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Name:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>Meshcentral Mini-Router</TD></TR><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Version:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>2.0.0.7</TD></TR><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Publisher:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>Meshcentral.com</TD></TR><tr><td colspan="3"> </td></tr></TABLE>
|
<TABLE><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Name:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>Meshcentral Mini-Router</TD></TR><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Version:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>2.0.0.10</TD></TR><TR><TD COLSPAN="3"> </TD></TR><TR><TD><B>Publisher:</B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>Meshcentral.com</TD></TR><tr><td colspan="3"> </td></tr></TABLE>
|
||||||
<!-- End AppInfo -->
|
<!-- End AppInfo -->
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2416,8 +2416,13 @@
|
||||||
if (xxmap != null) x += '<a style=cursor:pointer onclick=p10showNodeLocationDialog("' + node._id + '") title="Show device locations information">Location</a> ';
|
if (xxmap != null) x += '<a style=cursor:pointer onclick=p10showNodeLocationDialog("' + node._id + '") title="Show device locations information">Location</a> ';
|
||||||
|
|
||||||
// RDP link, show this link only of the remote machine is Windows.
|
// RDP link, show this link only of the remote machine is Windows.
|
||||||
if (((connectivity & 1) != 0) && (clickOnce == true) && (mesh.mtype == 2) && ((meshrights & 8) != 0) && (node.agent.id > 0) && (node.agent.id < 5)) { x += '<a style=cursor:pointer onclick=p10clickOnce("' + node._id + '","RDP") title="Requires Microsoft ClickOnce support in your browser.">RDP</a> '; }
|
if (((connectivity & 1) != 0) && (clickOnce == true) && (mesh.mtype == 2) && ((meshrights & 8) != 0)) {
|
||||||
|
if ((node.agent.id > 0) && (node.agent.id < 5)) { x += '<a style=cursor:pointer onclick=p10clickOnce("' + node._id + '","RDP2",3389) title="Requires Microsoft ClickOnce support in your browser.">RDP</a> '; }
|
||||||
|
if (node.agent.id > 4) {
|
||||||
|
x += '<a style=cursor:pointer onclick=p10clickOnce("' + node._id + '","PSSH",22) title="Requires Microsoft ClickOnce support in your browser.">Putty</a> ';
|
||||||
|
x += '<a style=cursor:pointer onclick=p10clickOnce("' + node._id + '","WSCP",22) title="Requires Microsoft ClickOnce support in your browser.">WinSCP</a> ';
|
||||||
|
}
|
||||||
|
}
|
||||||
x += '</div><br>'
|
x += '</div><br>'
|
||||||
|
|
||||||
QH('p10html3', x);
|
QH('p10html3', x);
|
||||||
|
@ -2626,8 +2631,8 @@
|
||||||
meshserver.Send({ action: 'removedevices', nodeids: [ nodeid ] });
|
meshserver.Send({ action: 'removedevices', nodeids: [ nodeid ] });
|
||||||
}
|
}
|
||||||
|
|
||||||
function p10clickOnce(nodeid, protocol) {
|
function p10clickOnce(nodeid, protocol, port) {
|
||||||
meshserver.Send({ action: 'getcookie', nodeid: nodeid, tcpport: 3389, tag: 'clickonce', protocol: 'rdp' });
|
meshserver.Send({ action: 'getcookie', nodeid: nodeid, tcpport: port, tag: 'clickonce', protocol: protocol });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show current location
|
// Show current location
|
||||||
|
|
|
@ -704,7 +704,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
|
||||||
Debug(1, 'Websocket relay connected from ' + user.name + ' for ' + req.query.host + '.');
|
Debug(1, 'Websocket relay connected from ' + user.name + ' for ' + req.query.host + '.');
|
||||||
|
|
||||||
ws.pause(); // Hold this socket until we are ready.
|
ws.pause(); // Hold this socket until we are ready.
|
||||||
ws._socket.setKeepAlive(true, 0); // Set TCP keep alive
|
ws._socket.setKeepAlive(true, 240000); // Set TCP keep alive
|
||||||
|
|
||||||
// Fetch information about the target
|
// Fetch information about the target
|
||||||
obj.db.Get(req.query.host, function (err, docs) {
|
obj.db.Get(req.query.host, function (err, docs) {
|
||||||
|
@ -940,7 +940,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
|
||||||
function handleEchoWebSocket(ws, req) {
|
function handleEchoWebSocket(ws, req) {
|
||||||
var domain = checkUserIpAddress(ws, req);
|
var domain = checkUserIpAddress(ws, req);
|
||||||
if (domain == null) return;
|
if (domain == null) return;
|
||||||
ws._socket.setKeepAlive(true, 0); // Set TCP keep alive
|
ws._socket.setKeepAlive(true, 240000); // Set TCP keep alive
|
||||||
|
|
||||||
// When data is received from the web socket, echo it back
|
// When data is received from the web socket, echo it back
|
||||||
ws.on('message', function (data) {
|
ws.on('message', function (data) {
|
||||||
|
@ -1419,7 +1419,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
|
||||||
if ((o.time == null) || (o.time == null) || (typeof o.time != 'number')) { return null; }
|
if ((o.time == null) || (o.time == null) || (typeof o.time != 'number')) { return null; }
|
||||||
o.time = o.time * 1000; // Decode the cookie creation time
|
o.time = o.time * 1000; // Decode the cookie creation time
|
||||||
o.dtime = Date.now() - o.time; // Decode how long ago the cookie was created (in milliseconds)
|
o.dtime = Date.now() - o.time; // Decode how long ago the cookie was created (in milliseconds)
|
||||||
if ((o.dtime > 120000) || (o.dtime < 30000)) return null; // The cookie is only valid 120 seconds, or 30 seconds back in time (in case other server's clock is not quite right)
|
if ((o.dtime > 120000) || (o.dtime < -30000)) return null; // The cookie is only valid 120 seconds, or 30 seconds back in time (in case other server's clock is not quite right)
|
||||||
return o;
|
return o;
|
||||||
} catch (e) { return null; }
|
} catch (e) { return null; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue