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",