From 5f3a020103b8235c0730def685fddc1cc06c58a5 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Fri, 24 May 2019 15:11:00 -0700 Subject: [PATCH] MeshCentral Router update, fixed backup links in non-default domain. --- agents/MeshCentralRouter.exe | Bin 1408384 -> 1408384 bytes meshagent.js | 2 ++ package.json | 2 +- views/default-min.handlebars | 2 +- webserver.js | 14 ++++++++------ 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/agents/MeshCentralRouter.exe b/agents/MeshCentralRouter.exe index 7062aea2e7269dad981cdfc0adaaa7deca747095..ec511a96aee1538035a4229ad560516e3c14438a 100644 GIT binary patch delta 36581 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 B6o&u+ delta 36477 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 diff --git a/meshagent.js b/meshagent.js index 7b376773..40425d19 100644 --- a/meshagent.js +++ b/meshagent.js @@ -220,6 +220,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { parent.parent.taskLimiter.launch(function (argument, taskid, taskLimiterQueue) { if (obj.authenticated != 2) { parent.parent.taskLimiter.completed(taskid); return; } // If agent disconnection, complete and exit now. if (obj.nodeid != null) { parent.parent.debug(1, 'Agent update required, NodeID=0x' + obj.nodeid.substring(0, 16) + ', ' + obj.agentExeInfo.desc); } + parent.agentStats.agentBinaryUpdate++; if (obj.agentExeInfo.data == null) { // Read the agent from disk parent.fs.open(obj.agentExeInfo.path, 'r', function (err, fd) { @@ -457,6 +458,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { // If the mesh agent web socket is closed, clean up. ws.on('close', function (req) { + parent.agentStats.agentClose++; if (obj.nodeid != null) { const agentId = (obj.agentInfo && obj.agentInfo.agentId) ? obj.agentInfo.agentId : 'Unknown'; //console.log('Agent disconnect ' + obj.nodeid + ' (' + obj.remoteaddrport + ') id=' + agentId); diff --git a/package.json b/package.json index ec2416e6..6d6cee2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.3.5-d", + "version": "0.3.5-f", "keywords": [ "Remote Management", "Intel AMT", diff --git a/views/default-min.handlebars b/views/default-min.handlebars index 23aefd15..1f950ab7 100644 --- a/views/default-min.handlebars +++ b/views/default-min.handlebars @@ -1 +1 @@ - {{{title}}}
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file + {{{title}}}
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file diff --git a/webserver.js b/webserver.js index 23521404..fb9489c7 100644 --- a/webserver.js +++ b/webserver.js @@ -241,6 +241,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { // Agent counters obj.agentStats = { createMeshAgentCount: 0, + agentClose: 0, + agentBinaryUpdate: 0, coreIsStableCount: 0, verifiedAgentConnectionCount: 0, clearingCoreCount: 0, @@ -2197,9 +2199,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { function handleBackupRequest(req, res) { const domain = checkUserIpAddress(req, res); if (domain == null) return; - if ((domain.id !== '') || (!req.session) || (req.session == null) || (!req.session.userid) || (obj.parent.args.noserverbackup == 1)) { res.sendStatus(401); return; } + if ((!req.session) || (req.session == null) || (!req.session.userid) || (obj.parent.args.noserverbackup == 1)) { res.sendStatus(401); return; } var user = obj.users[req.session.userid]; - if ((user.siteadmin & 1) == 0) { res.sendStatus(401); return; } // Check if we have server backup rights + if ((user == null) || ((user.siteadmin & 1) == 0)) { res.sendStatus(401); return; } // Check if we have server backup rights // Require modules const archive = require('archiver')('zip', { level: 9 }); // Sets the compression method to maximum. @@ -2229,9 +2231,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { function handleRestoreRequest(req, res) { const domain = checkUserIpAddress(req, res); if (domain == null) return; - if ((domain.id !== '') || (!req.session) || (req.session == null) || (!req.session.userid) || (obj.parent.args.noserverbackup == 1)) { res.sendStatus(401); return; } + if ((!req.session) || (req.session == null) || (!req.session.userid) || (obj.parent.args.noserverbackup == 1)) { res.sendStatus(401); return; } const user = obj.users[req.session.userid]; - if ((user.siteadmin & 4) == 0) { res.sendStatus(401); return; } // Check if we have server restore rights + if ((user == null) || ((user.siteadmin & 4) == 0)) { res.sendStatus(401); return; } // Check if we have server restore rights const multiparty = require('multiparty'); const form = new multiparty.Form(); @@ -2627,13 +2629,13 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { }); // Setup all HTTP handlers - obj.app.get('/backup.zip', handleBackupRequest); - obj.app.post('/restoreserver.ashx', handleRestoreRequest); if (parent.multiServer != null) { obj.app.ws('/meshserver.ashx', function (ws, req) { parent.multiServer.CreatePeerInServer(parent.multiServer, ws, req); }); } for (var i in parent.config.domains) { if (parent.config.domains[i].dns != null) { continue; } // This is a subdomain with a DNS name, no added HTTP bindings needed. var url = parent.config.domains[i].url; obj.app.get(url, handleRootRequest); + obj.app.get(url + 'backup.zip', handleBackupRequest); + obj.app.post(url + 'restoreserver.ashx', handleRestoreRequest); obj.app.get(url + 'terms', handleTermsRequest); obj.app.post(url + 'login', handleLoginRequest); obj.app.post(url + 'tokenlogin', handleLoginRequest);