Agent binaries will be taking from meshcentral-data/agents if present, #3482
Ylian Saint-Hilaire committed
Jan 19, 2022 at 10:59 UTC
9787aa758bc29e70a313941fc742f55bd2c0bb27
1 file changed
+12
-1
meshcentral.js
+12
-1
@@ -1550,7 +1550,10 @@ function CreateMeshCentralServer(config, args) {
1550
1551
// Load MeshAgent translation strings
1552
try {
1553
- var translations = JSON.parse(obj.fs.readFileSync(obj.path.join(__dirname, 'agents', 'agent-translations.json')).toString());
1553
+ var translationpath = obj.path.join(__dirname, 'agents', 'agent-translations.json');
1554
+ var translationpath2 = obj.path.join(obj.datapath, 'agents', 'agent-translations.json');
1555
+ if (obj.fs.existsSync(translationpath2)) { translationpath = translationpath2; } // If the agent is present in "meshcentral-data/agents", use that one instead.
1556
+ var translations = JSON.parse(obj.fs.readFileSync(translationpath).toString());
1557
if (translations['zh-chs']) { translations['zh-hans'] = translations['zh-chs']; delete translations['zh-chs']; }
1558
if (translations['zh-cht']) { translations['zh-hant'] = translations['zh-cht']; delete translations['zh-cht']; }
1559
obj.agentTranslations = JSON.stringify(translations);
@@ -2628,6 +2631,9 @@ function CreateMeshCentralServer(config, args) {
2631
for (var toolname in meshToolsList) {
2632
if (meshToolsList[toolname].winhash === true) {
2633
var toolpath = obj.path.join(__dirname, 'agents', meshToolsList[toolname].localname);
2634
+ var toolpath2 = obj.path.join(obj.datapath, 'agents', meshToolsList[toolname].localname);
2635
+ if (obj.fs.existsSync(toolpath2)) { toolpath = toolpath2; } // If the tool is present in "meshcentral-data/agents", use that one instead.
2636
+
2637
var hashStream = obj.crypto.createHash('sha384');
2638
hashStream.toolname = toolname;
2639
hashStream.toolpath = toolpath;
@@ -2644,6 +2650,9 @@ function CreateMeshCentralServer(config, args) {
2650
obj.exeHandler.hashExecutableFile(options);
2651
} else {
2652
var toolpath = obj.path.join(__dirname, 'agents', meshToolsList[toolname].localname);
2653
+ var toolpath2 = obj.path.join(obj.datapath, 'agents', meshToolsList[toolname].localname);
2654
+ if (obj.fs.existsSync(toolpath2)) { toolpath = toolpath2; } // If the tool is present in "meshcentral-data/agents", use that one instead.
2655
+
2656
var stream = null;
2657
try {
2658
stream = obj.fs.createReadStream(toolpath);
@@ -2772,6 +2781,8 @@ function CreateMeshCentralServer(config, args) {
2781
var archcount = 0;
2782
for (var archid in obj.meshAgentsArchitectureNumbers) {
2783
var agentpath = obj.path.join(__dirname, 'agents', obj.meshAgentsArchitectureNumbers[archid].localname);
2784
+ var agentpath2 = obj.path.join(obj.datapath, 'agents', obj.meshAgentsArchitectureNumbers[archid].localname);
2785
+ if (obj.fs.existsSync(agentpath2)) { agentpath = agentpath2; } // If the agent is present in "meshcentral-data/agents", use that one instead.
2786
2787
// Fetch all the agent binary information
2788
var stats = null;