Added server multicast discovery
Ylian Saint-Hilaire committed
Sep 1, 2018 at 22:05 UTC
fa7abefa011248eca55d18ab7970fba39d445c6f
2 files changed
+19
-1
meshscanner.js
+18
@@ -128,10 +128,25 @@ module.exports.CreateMeshScanner = function (parent) {
128
// Start scanning for local network Mesh Agents
129
obj.start = function () {
130
if (obj.server4 != null) return;
131
+
132
+ // Setup the local discovery values
133
+ var name = 'MeshCentral';
134
+ try { name = obj.parent.config.domains[''].title; } catch (ex) { }
135
+ try { name = obj.parent.args.localdiscovery.name; } catch (ex) { }
136
+ var info = 'Beta2';
137
+ try { info = obj.parent.config.domains[''].title2; } catch (ex) { }
138
+ try { info = obj.parent.args.localdiscovery.info; } catch (ex) { }
139
+
140
+ // Build the IPv4 response
141
var url = (parent.args.notls ? 'ws' : 'wss') + '://%s:' + parent.args.port + '/agent.ashx';
142
obj.multicastPacket4 = Buffer.from("MeshCentral2|" + obj.agentCertificateHashHex + '|' + url, 'ascii');
143
+ obj.multicastPacket4x = Buffer.from("MeshCentral2|" + obj.agentCertificateHashHex + '|' + url + '|' + name + '|' + info, 'ascii');
144
+
145
+ // Build the IPv6 response
146
url = (parent.args.notls ? 'ws' : 'wss') + '://[%s]:' + parent.args.port + '/agent.ashx';
147
obj.multicastPacket6 = Buffer.from("MeshCentral2|" + obj.agentCertificateHashHex + '|' + url, 'ascii');
148
+ obj.multicastPacket6x = Buffer.from("MeshCentral2|" + obj.agentCertificateHashHex + '|' + url + '|' + name + '|' + info, 'ascii');
149
+
150
setupServers();
151
obj.mainTimer = setInterval(obj.performScan, periodicScanTime);
152
return obj;
@@ -164,6 +179,9 @@ module.exports.CreateMeshScanner = function (parent) {
179
if ((msg.length == 96) && (msg.toString('ascii') == obj.agentCertificateHashHex)) {
180
if (server.xxtype == 4) { try { server.send(obj.multicastPacket4, 0, obj.multicastPacket4.length, info.port, info.address); } catch (e) { } }
181
if (server.xxtype == 6) { try { server.send(obj.multicastPacket6, 0, obj.multicastPacket6.length, info.port, info.address); } catch (e) { } }
182
+ } else if (msg.toString('ascii') == 'MeshServerScan') {
183
+ if (server.xxtype == 4) { try { server.send(obj.multicastPacket4x, 0, obj.multicastPacket4x.length, info.port, info.address); } catch (e) { } }
184
+ if (server.xxtype == 6) { try { server.send(obj.multicastPacket6x, 0, obj.multicastPacket6x.length, info.port, info.address); } catch (e) { } }
185
}
186
}
187
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.2.0-a",
3
+ "version": "0.2.0-b",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",