From b602d374b0375c46e1c854be5531b0e2bdfbf03d Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 6 Jul 2020 17:16:54 -0700 Subject: [PATCH] Updated MeshCentral Router --- agents/MeshCentralRouter.exe | Bin 1979712 -> 1980736 bytes agents/meshcore.js | 15 +++++++++++++++ meshagent.js | 10 ++++++++++ 3 files changed, 25 insertions(+) diff --git a/agents/MeshCentralRouter.exe b/agents/MeshCentralRouter.exe index b0e3c897b3b575e4e591058938408ac543cde114..a6d264eb668e3eeaa6e74d4ba12c503ee8abc6db 100644 GIT binary patch delta 34728 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 diff --git a/agents/meshcore.js b/agents/meshcore.js index 71f29f25..e7732280 100644 --- a/agents/meshcore.js +++ b/agents/meshcore.js @@ -966,6 +966,14 @@ function createMeshCore(agent) { process.coreDumpLocation = null; } break; + case 'getcoredump': + var r = { action: 'getcoredump', value: (process.coreDumpLocation != null) }; + if (process.platform == 'win32') { + r.exists = r.value ? fs.existsSync(process.coreDumpLocation) : false; + } else { + r.exists = (r.value && (process.cwd() != '//')) ? fs.existsSync(process.cwd() + 'core') : false; + } + mesh.SendCommand(JSON.stringify(r)); default: // Unknown action, ignore it. break; @@ -2284,6 +2292,13 @@ function createMeshCore(agent) { break; case 'status': response = 'coredump is: ' + ((process.coreDumpLocation == null) ? 'off' : 'on'); + if (process.coreDumpLocation != null) { + if (process.platform == 'win32') { + if (fs.existsSync(process.coreDumpLocation)) { response += '\r\n CoreDump present at: ' + process.coreDumpLocation; } + } else { + if ((process.cwd() != '//') && fs.existsSync(process.cwd() + 'core')) { response += '\r\n CoreDump present at: ' + process.cwd() + 'core'; } + } + } break; default: response = "Proper usage: coredump on|off|status"; // Display usage diff --git a/meshagent.js b/meshagent.js index b55d9a1c..72d1eee4 100644 --- a/meshagent.js +++ b/meshagent.js @@ -978,6 +978,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { // Set agent core dump if ((parent.parent.config.settings != null) && ((parent.parent.config.settings.agentcoredump === true) || (parent.parent.config.settings.agentcoredump === false))) { obj.send(JSON.stringify({ action: 'coredump', value: parent.parent.config.settings.agentcoredump })); + if (parent.parent.config.settings.agentcoredump === true) { obj.send(JSON.stringify({ action: 'getcoredump' })); } } // Do this if IP location is enabled on this domain TODO: Set IP location per device group? @@ -1368,6 +1369,15 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { obj.updateSessions(); break; } + case 'getcoredump': { + // Indicates if the agent has a coredump available + if (command.exists === true) { + //console.log('CoreDump for agent ' + obj.remoteaddrport); + obj.coreDumpPresent = true; + // TODO: We need to look at getting the dump uploaded to the server. + } + break; + } case 'plugin': { if ((parent.parent.pluginHandler == null) || (typeof command.plugin != 'string')) break; try {