mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-02-12 11:01:52 +00:00
Server optimizations.
This commit is contained in:
parent
ff663b630d
commit
eb3977ee72
6 changed files with 280 additions and 2139760 deletions
File diff suppressed because it is too large
Load diff
534
meshagent.js
534
meshagent.js
File diff suppressed because it is too large
Load diff
|
@ -1377,7 +1377,7 @@ function CreateMeshCentralServer(config, args) {
|
||||||
obj.meshAgentBinaries[archid].path = agentpath;
|
obj.meshAgentBinaries[archid].path = agentpath;
|
||||||
obj.meshAgentBinaries[archid].url = ((obj.args.notls == true) ? 'http://' : 'https://') + obj.certificates.CommonName + ':' + obj.args.port + '/meshagents?id=' + archid;
|
obj.meshAgentBinaries[archid].url = ((obj.args.notls == true) ? 'http://' : 'https://') + obj.certificates.CommonName + ':' + obj.args.port + '/meshagents?id=' + archid;
|
||||||
obj.meshAgentBinaries[archid].size = stats.size;
|
obj.meshAgentBinaries[archid].size = stats.size;
|
||||||
if (!obj.args.agentsondisk) { obj.meshAgentBinaries[archid].data = obj.fs.readFileSync(agentpath); }
|
if (obj.args.agentsinram) { obj.meshAgentBinaries[archid].data = obj.fs.readFileSync(agentpath); }
|
||||||
// If this is a windows binary, pull binary information
|
// If this is a windows binary, pull binary information
|
||||||
if (obj.meshAgentsArchitectureNumbers[archid].platform == 'win32') {
|
if (obj.meshAgentsArchitectureNumbers[archid].platform == 'win32') {
|
||||||
try { obj.meshAgentBinaries[archid].pe = obj.exeHandler.parseWindowsExecutable(agentpath); } catch (e) { }
|
try { obj.meshAgentBinaries[archid].pe = obj.exeHandler.parseWindowsExecutable(agentpath); } catch (e) { }
|
||||||
|
@ -1387,7 +1387,7 @@ function CreateMeshCentralServer(config, args) {
|
||||||
var hashStream = obj.crypto.createHash('sha384');
|
var hashStream = obj.crypto.createHash('sha384');
|
||||||
hashStream.archid = archid;
|
hashStream.archid = archid;
|
||||||
hashStream.on('data', function (data) {
|
hashStream.on('data', function (data) {
|
||||||
obj.meshAgentBinaries[this.archid].hash = data.toString('hex');
|
obj.meshAgentBinaries[this.archid].hash = data.toString('binary');
|
||||||
if ((--archcount == 0) && (func != null)) { func(); }
|
if ((--archcount == 0) && (func != null)) { func(); }
|
||||||
});
|
});
|
||||||
var options = { sourcePath: agentpath, targetStream: hashStream, platform: obj.meshAgentsArchitectureNumbers[archid].platform };
|
var options = { sourcePath: agentpath, targetStream: hashStream, platform: obj.meshAgentsArchitectureNumbers[archid].platform };
|
||||||
|
|
|
@ -471,7 +471,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case 'help': {
|
case 'help': {
|
||||||
r = 'Available commands: help, info, versions, args, resetserver, showconfig, usersessions, tasklimiter, setmaxtasks, cores,\r\n'
|
r = 'Available commands: help, info, versions, args, resetserver, showconfig, usersessions, tasklimiter, setmaxtasks, cores,\r\n'
|
||||||
r += 'migrationagents, swarmstats, nodeconfig.';
|
r += 'migrationagents, swarmstats, nodeconfig, heapdump.';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'info': {
|
case 'info': {
|
||||||
|
@ -562,7 +562,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
||||||
} else {
|
} else {
|
||||||
for (var i in obj.parent.parent.swarmserver.migrationAgents) {
|
for (var i in obj.parent.parent.swarmserver.migrationAgents) {
|
||||||
var arch = obj.parent.parent.swarmserver.migrationAgents[i];
|
var arch = obj.parent.parent.swarmserver.migrationAgents[i];
|
||||||
for (var j in arch) { var agent = arch[j]; r += 'Arch ' + agent.arch + ', Ver ' + agent.ver + ', Size ' + agent.binary.length + '<br />'; }
|
for (var j in arch) { var agent = arch[j]; r += 'Arch ' + agent.arch + ', Ver ' + agent.ver + ', Size ' + ((agent.binary == null) ? 0 : agent.binary.length) + '<br />'; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "meshcentral",
|
"name": "meshcentral",
|
||||||
"version": "0.2.9-r",
|
"version": "0.2.9-w",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"Remote Management",
|
"Remote Management",
|
||||||
"Intel AMT",
|
"Intel AMT",
|
||||||
|
@ -35,15 +35,12 @@
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"express-handlebars": "^3.0.0",
|
"express-handlebars": "^3.0.0",
|
||||||
"express-ws": "^4.0.0",
|
"express-ws": "^4.0.0",
|
||||||
"heapdump": "^0.3.12",
|
|
||||||
"ipcheck": "^0.1.0",
|
"ipcheck": "^0.1.0",
|
||||||
"meshcentral": "*",
|
"meshcentral": "*",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"mongojs": "^2.6.0",
|
|
||||||
"multiparty": "^4.2.1",
|
"multiparty": "^4.2.1",
|
||||||
"nedb": "^1.8.0",
|
"nedb": "^1.8.0",
|
||||||
"node-forge": "^0.7.6",
|
"node-forge": "^0.7.6",
|
||||||
"node-windows": "^0.1.14",
|
|
||||||
"otplib": "^10.0.1",
|
"otplib": "^10.0.1",
|
||||||
"util.promisify": "^1.0.0",
|
"util.promisify": "^1.0.0",
|
||||||
"ws": "^6.1.2",
|
"ws": "^6.1.2",
|
||||||
|
|
|
@ -138,9 +138,8 @@ module.exports.CreateSwarmServer = function (parent, db, args, certificates) {
|
||||||
var agentInfo = migrationAgentsDir[i].substring(10).split('.');
|
var agentInfo = migrationAgentsDir[i].substring(10).split('.');
|
||||||
var agentVersion = parseInt(agentInfo[0]);
|
var agentVersion = parseInt(agentInfo[0]);
|
||||||
var agentArch = parseInt(agentInfo[1]);
|
var agentArch = parseInt(agentInfo[1]);
|
||||||
var agentBinary = obj.parent.fs.readFileSync(migrationAgentName);
|
|
||||||
if (obj.migrationAgents[agentArch] == null) { obj.migrationAgents[agentArch] = {}; }
|
if (obj.migrationAgents[agentArch] == null) { obj.migrationAgents[agentArch] = {}; }
|
||||||
if (obj.migrationAgents[agentArch][agentVersion] == null) { obj.migrationAgents[agentArch][agentVersion] = { arch: agentArch, ver: agentVersion, path: migrationAgentName, binary: agentBinary }; }
|
if (obj.migrationAgents[agentArch][agentVersion] == null) { obj.migrationAgents[agentArch][agentVersion] = { arch: agentArch, ver: agentVersion, path: migrationAgentName }; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -270,6 +269,7 @@ module.exports.CreateSwarmServer = function (parent, db, args, certificates) {
|
||||||
case 6: { // Ask for agent block
|
case 6: { // Ask for agent block
|
||||||
if (socket.tag.update != null) {
|
if (socket.tag.update != null) {
|
||||||
// Send an agent block
|
// Send an agent block
|
||||||
|
if (socket.tag.update.binary == null) { socket.tag.update.binary = obj.parent.fs.readFileSync(socket.tag.update.path); }
|
||||||
var l = Math.min(socket.tag.update.binary.length - socket.tag.updatePtr, 16384);
|
var l = Math.min(socket.tag.update.binary.length - socket.tag.updatePtr, 16384);
|
||||||
obj.SendCommand(socket, LegacyMeshProtocol.GETSTATE, common.IntToStr(6) + common.IntToStr(socket.tag.updatePtr) + socket.tag.update.binary.toString('binary', socket.tag.updatePtr, socket.tag.updatePtr + l)); // agent.SendQuery(6, AgentFileLen + AgentBlock);
|
obj.SendCommand(socket, LegacyMeshProtocol.GETSTATE, common.IntToStr(6) + common.IntToStr(socket.tag.updatePtr) + socket.tag.update.binary.toString('binary', socket.tag.updatePtr, socket.tag.updatePtr + l)); // agent.SendQuery(6, AgentFileLen + AgentBlock);
|
||||||
Debug(3, 'Swarm:Sending agent block, ptr = ' + socket.tag.updatePtr + ', len = ' + l);
|
Debug(3, 'Swarm:Sending agent block, ptr = ' + socket.tag.updatePtr + ', len = ' + l);
|
||||||
|
|
Loading…
Reference in a new issue