Added a lot of the load-balancing support

Ylian Saint-Hilaire committed Sep 13, 2017 at 11:25 UTC fb5114399ffaa53c15101c819945ec5e0d60cd59
10 files changed +2195 -105
agents/meshcore.js
+6
@@ -776,6 +776,12 @@ function createMeshCore(agent) {
776 }
777 break;
778 }
779 + case 'location': {
780 + getIpLocationData(function (location) {
781 + sendConsoleText(objToString({ "action": "iplocation", "type": "publicip", "value": location }, 0, '.'));
782 + });
783 + break;
784 + }
785 default: { // This is an unknown command, return an error message
786 response = 'Unknown command \"' + cmd + '\", type \"help\" for list of avaialble commands.';
787 break;
db.js
+13
@@ -18,6 +18,8 @@
18 module.exports.CreateDB = function (args, datapath) {
19 var obj = {};
20 obj.path = require('path');
21 + obj.identifier = null;
22 +
23 if (args.mongodb) {
24 // Use MongoDB
25 obj.databaseType = 2;
@@ -35,6 +37,17 @@ module.exports.CreateDB = function (args, datapath) {
37 }
38
39 obj.SetupDatabase = function (func) {
40 + // Check if the database unique identifier is present
41 + // This is used to check that in server peering mode, everyone is using the same database.
42 + obj.Get('DatabaseIdentifier', function (err, docs) {
43 + if ((docs.length == 1) && (docs[0].value != null)) {
44 + obj.identifier = docs[0].value;
45 + } else {
46 + obj.identifier = new Buffer(require('crypto').randomBytes(32), 'binary').toString('hex');
47 + obj.Set({ _id: 'DatabaseIdentifier', value: obj.identifier });
48 + }
49 + });
50 +
51 // Load database schema version and check if we need to update
52 obj.Get('SchemaVersion', function (err, docs) {
53 var ver = 0;
meshagent.js
+2 -2
@@ -30,7 +30,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
30 if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); }
31
32 // Send a message to the mesh agent
33 - obj.send = function (data) { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } }
33 + obj.send = function (data) { try { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } } catch (e) { } }
34
35 // Disconnect this agent
36 obj.close = function (arg) {
@@ -92,7 +92,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
92 if (err) { return console.error(err); }
93 obj.agentUpdate = { oldHash: agenthash, ptr: 0, buf: new Buffer(agentUpdateBlockSize + 4), fd: fd };
94
95 - // We got the agent file open ont he server side, tell the agent we are sending an update starting with the SHA256 hash of the result
95 + // We got the agent file open on the server side, tell the agent we are sending an update starting with the SHA256 hash of the result
96 //console.log("Agent update file open.");
97 obj.send(obj.common.ShortToStr(13) + obj.common.ShortToStr(0)); // Command 13, start mesh agent download
98
meshcentral.js
+160 -57
@@ -21,8 +21,8 @@ function CreateMeshCentralServer() {
21 obj.args = require('minimist')(process.argv.slice(2));
22 obj.common = require('./common.js');
23 obj.certificates = null;
24 - obj.connectivityByMesh = {}; // This object keeps a list of all connected CIRA and agents, by meshid->nodeid->value (value: 1 = Agent, 2 = CIRA, 4 = AmtDirect)
24 obj.connectivityByNode = {}; // This object keeps a list of all connected CIRA and agents, by nodeid->value (value: 1 = Agent, 2 = CIRA, 4 = AmtDirect)
25 + obj.peerConnectivityByNode = {}; // This object keeps a list of all connected CIRA and agents of peers, by serverid->nodeid->value (value: 1 = Agent, 2 = CIRA, 4 = AmtDirect)
26 obj.debugLevel = 0;
27 obj.config = {}; // Configuration file
28 obj.dbconfig = {}; // Persistance values, loaded from database
@@ -36,6 +36,7 @@ function CreateMeshCentralServer() {
36 obj.multiServer = null;
37 obj.currentVer = null;
38 obj.maintenanceTimer = null;
39 + obj.serverId = null;
40
41 // Create data and files folders if needed
42 try { obj.fs.mkdirSync(obj.datapath); } catch (e) { }
@@ -136,6 +137,7 @@ function CreateMeshCentralServer() {
137 } else {
138 if (error != null) {
139 // This is an un-expected restart
140 + console.log(error);
141 console.log('ERROR: MeshCentral failed with critical error, check MeshErrors.txt. Restarting...');
142 setTimeout(function () { obj.launchChildServer(startLine); }, 1000);
143 }
@@ -289,6 +291,10 @@ function CreateMeshCentralServer() {
291 require('crypto').randomBytes(32, function (err, buf) {
292 // Setup Mesh Multi-Server if needed
293 obj.multiServer = require('./multiserver.js').CreateMultiServer(obj, obj.args);
294 + if (obj.multiServer != null) {
295 + obj.serverId = obj.config.peers.serverId;
296 + for (var serverid in obj.config.peers.servers) { obj.peerConnectivityByNode[serverid] = {}; }
297 + }
298
299 if (obj.args.secret) {
300 // This secret is used to encrypt HTTP session information, if specified, user it.
@@ -414,10 +420,54 @@ function CreateMeshCentralServer() {
420 }
421 }
422 }
417 - if ((fromPeerServer == undefined) && (obj.multiServer != null)) { obj.multiServer.DispatchEvent(ids, source, event); }
423 + if ((fromPeerServer == undefined) && (obj.multiServer != null) && (event.nopeers != 1)) { obj.multiServer.DispatchEvent(ids, source, event); }
424 delete targets;
425 }
426
427 + // Get the connection state of a node
428 + obj.GetConnectivityState = function (nodeid) { return obj.connectivityByNode[nodeid]; }
429 +
430 + // Update the connection state of a node when in multi-server mode
431 + // Update obj.connectivityByNode using obj.peerConnectivityByNode for the list of nodes in argument
432 + obj.UpdateConnectivityState = function (nodeids) {
433 + for (var nodeid in nodeids) {
434 + var meshid = null, state = null, oldConnectivity = 0, oldPowerState = 0, newConnectivity = 0, newPowerState = 0;
435 + var oldState = obj.connectivityByNode[nodeid];
436 + if (oldState != null) { meshid = oldState.meshid; oldConnectivity = oldState.connectivity; oldPowerState = oldState.powerState; }
437 + for (serverid in obj.peerConnectivityByNode) {
438 + var peerState = obj.peerConnectivityByNode[serverid][nodeid];
439 + if (peerState != null) {
440 + if (state == null) {
441 + // Copy the state
442 + state = {};
443 + newConnectivity = state.connectivity = peerState.connectivity;
444 + newPowerState = state.powerState = peerState.powerState;
445 + meshid = state.meshid = peerState.meshid;
446 + //if (peerState.agentPower) { state.agentPower = peerState.agentPower; }
447 + //if (peerState.ciraPower) { state.ciraPower = peerState.ciraPower; }
448 + //if (peerState.amtPower) { state.amtPower = peerState.amtPower; }
449 + } else {
450 + // Merge the state
451 + state.connectivity |= peerState.connectivity;
452 + newConnectivity = state.connectivity;
453 + if ((peerState.powerState != 0) && ((state.powerState == 0) || (peerState.powerState < state.powerState))) { newPowerState = state.powerState = peerState.powerState; }
454 + meshid = state.meshid = peerState.meshid;
455 + //if (peerState.agentPower) { state.agentPower = peerState.agentPower; }
456 + //if (peerState.ciraPower) { state.ciraPower = peerState.ciraPower; }
457 + //if (peerState.amtPower) { state.amtPower = peerState.amtPower; }
458 + }
459 + }
460 + }
461 + obj.connectivityByNode[nodeid] = state;
462 +
463 + //console.log('xx', nodeid, meshid, newConnectivity, oldPowerState, newPowerState, oldPowerState);
464 +
465 + // Event any changes on this server only
466 + if ((newConnectivity != oldPowerState) || (newPowerState != oldPowerState)) {
467 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newConnectivity, pwr: newPowerState, nolog: 1, nopeers: 1 });
468 + }
469 + }
470 + }
471
472 // Set the connectivity state of a node and setup the server so that messages can be routed correctly.
473 // meshId: mesh identifier of format mesh/domain/meshidhex
@@ -427,79 +477,132 @@ function CreateMeshCentralServer() {
477 // powerState: Value, 0 = Unknown, 1 = S0 power on, 2 = S1 Sleep, 3 = S2 Sleep, 4 = S3 Sleep, 5 = S4 Hibernate, 6 = S5 Soft-Off, 7 = Present
478 var connectTypeStrings = ['', 'MeshAgent', 'Intel AMT CIRA', '', 'Intel AMT local'];
479 var powerStateStrings = ['Unknown', 'Powered', 'Sleep', 'Sleep', 'Deep Sleep', 'Hibernating', 'Soft-Off', 'Present'];
430 - obj.SetConnectivityState = function (meshid, nodeid, connectTime, connectType, powerState) {
431 - //console.log('SetConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + ', Power: ' + powerStateStrings[powerState]);
432 -
433 - // Change the node connection state
434 - var eventConnectChange = 0;
435 - var state = obj.connectivityByNode[nodeid];
436 - if (state) {
437 - // Change the connection in the node and mesh state lists
438 - if ((state.connectivity & connectType) == 0) {
439 - state.connectivity |= connectType;
480 + obj.SetConnectivityState = function (meshid, nodeid, connectTime, connectType, powerState, serverid) {
481 + //console.log('SetConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + ', Power: ' + powerStateStrings[powerState] + (serverid == null ? ('') : (', ServerId: ' + serverid)));
482 + if ((serverid == null) && (obj.multiServer != null)) { obj.multiServer.DispatchMessage({ action: 'SetConnectivityState', meshid: meshid, nodeid: nodeid, connectTime: connectTime, connectType: connectType, powerState: powerState }); }
483 +
484 + if (obj.multiServer == null) {
485 + // Single server mode
486 +
487 + // Change the node connection state
488 + var eventConnectChange = 0;
489 + var state = obj.connectivityByNode[nodeid];
490 + if (state) {
491 + // Change the connection in the node and mesh state lists
492 + if ((state.connectivity & connectType) == 0) { state.connectivity |= connectType; eventConnectChange = 1; }
493 + state.meshid = meshid;
494 + } else {
495 + // Add the connection to the node and mesh state list
496 + obj.connectivityByNode[nodeid] = state = { connectivity: connectType, meshid: meshid };
497 + eventConnectChange = 1;
498 + }
499 +
500 + // Set node power state
501 + if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; }
502 + var powerState = 0, oldPowerState = state.powerState;
503 + if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
504 + if ((state.powerState == undefined) || (state.powerState != powerState)) {
505 + state.powerState = powerState;
506 eventConnectChange = 1;
507 +
508 + // Set new power state in database
509 + obj.db.file.insert({ type: 'power', time: connectTime, node: nodeid, power: powerState, oldPower: oldPowerState });
510 }
511 +
512 + // Event the node connection change
513 + if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, ct: connectTime, nolog: 1, nopeers: 1 }); }
514 } else {
443 - // Add the connection to the node and mesh state list
444 - obj.connectivityByNode[nodeid] = state = { connectivity: connectType };
445 - if (!obj.connectivityByMesh[meshid]) { obj.connectivityByMesh[meshid] = {}; }
446 - obj.connectivityByMesh[meshid][nodeid] = state;
447 - eventConnectChange = 1;
448 - }
515 + // Multi server mode
516 +
517 + // Change the node connection state
518 + if (serverid == null) { serverid = obj.serverId; }
519 + if (obj.peerConnectivityByNode[serverid] == null) return; // Guard against unknown serverid's
520 + var state = obj.peerConnectivityByNode[serverid][nodeid];
521 + if (state) {
522 + // Change the connection in the node and mesh state lists
523 + if ((state.connectivity & connectType) == 0) { state.connectivity |= connectType; }
524 + state.meshid = meshid;
525 + } else {
526 + // Add the connection to the node and mesh state list
527 + obj.peerConnectivityByNode[serverid][nodeid] = state = { connectivity: connectType, meshid: meshid };
528 + }
529
450 - // Set node power state
451 - if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; }
452 - var powerState = 0, oldPowerState = state.powerState;
453 - if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
454 - if ((state.powerState == undefined) || (state.powerState != powerState)) {
455 - state.powerState = powerState;
456 - eventConnectChange = 1;
530 + // Set node power state
531 + if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; }
532 + var powerState = 0;
533 + if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
534 + if ((state.powerState == undefined) || (state.powerState != powerState)) { state.powerState = powerState; }
535
458 - // Set new power state in database
459 - obj.db.file.insert({ type: 'power', time: connectTime, node: nodeid, power: powerState, oldPower: oldPowerState });
536 + // Update the combined node state
537 + var x = {}; x[nodeid] = 1;
538 + obj.UpdateConnectivityState(x);
539 }
461 -
462 - // Event the node connection change
463 - if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, ct: connectTime, nolog: 1 }); }
540 }
541
542 // Clear the connectivity state of a node and setup the server so that messages can be routed correctly.
543 // meshId: mesh identifier of format mesh/domain/meshidhex
544 // nodeId: node identifier of format node/domain/nodeidhex
545 // connectType: Bitmask, 1 = MeshAgent, 2 = Intel AMT CIRA, 3 = Intel AMT local.
470 - obj.ClearConnectivityState = function (meshid, nodeid, connectType) {
471 - //console.log('ClearConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType]);
546 + obj.ClearConnectivityState = function (meshid, nodeid, connectType, serverid) {
547 + //console.log('ClearConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + (serverid == null?(''):(', ServerId: ' + serverid)));
548 + if ((serverid == null) && (obj.multiServer != null)) { obj.multiServer.DispatchMessage({ action: 'ClearConnectivityState', meshid: meshid, nodeid: nodeid, connectType: connectType }); }
549
473 - // Remove the agent connection from the nodes connection list
474 - var state = obj.connectivityByNode[nodeid];
475 - if (state == undefined) return;
550 + if (obj.multiServer == null) {
551 + // Single server mode
552
477 - if ((state.connectivity & connectType) != 0) {
478 - state.connectivity -= connectType;
553 + // Remove the agent connection from the nodes connection list
554 + var state = obj.connectivityByNode[nodeid];
555 + if (state == undefined) return;
556
480 - // If the node is completely disconnected, clean it up completely
481 - if (state.connectivity == 0) {
482 - delete obj.connectivityByNode[nodeid];
483 - delete obj.connectivityByMesh[meshid][nodeid];
484 - state.powerState = 0;
557 + if ((state.connectivity & connectType) != 0) {
558 + state.connectivity -= connectType;
559 +
560 + // If the node is completely disconnected, clean it up completely
561 + if (state.connectivity == 0) { delete obj.connectivityByNode[nodeid]; state.powerState = 0; }
562 + eventConnectChange = 1;
563 }
486 - eventConnectChange = 1;
487 - }
564
489 - // Clear node power state
490 - if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; }
491 - var powerState = 0, oldPowerState = state.powerState;
492 - if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
493 - if ((state.powerState == undefined) || (state.powerState != powerState)) {
494 - state.powerState = powerState;
495 - eventConnectChange = 1;
565 + // Clear node power state
566 + if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; }
567 + var powerState = 0, oldPowerState = state.powerState;
568 + if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
569 + if ((state.powerState == undefined) || (state.powerState != powerState)) {
570 + state.powerState = powerState;
571 + eventConnectChange = 1;
572
497 - // Set new power state in database
498 - obj.db.file.insert({ type: 'power', time: Date.now(), node: nodeid, power: powerState, oldPower: oldPowerState });
499 - }
573 + // Set new power state in database
574 + obj.db.file.insert({ type: 'power', time: Date.now(), node: nodeid, power: powerState, oldPower: oldPowerState });
575 + }
576
501 - // Event the node connection change
502 - if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1 }); }
577 + // Event the node connection change
578 + if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1, nopeers: 1 }); }
579 + } else {
580 + // Multi server mode
581 +
582 + // Remove the agent connection from the nodes connection list
583 + if (serverid == null) { serverid = obj.serverId; }
584 + if (obj.peerConnectivityByNode[serverid] == null) return; // Guard against unknown serverid's
585 + var state = obj.peerConnectivityByNode[serverid][nodeid];
586 + if (state == undefined) return;
587 +
588 + // If existing state exist, remove this connection
589 + if ((state.connectivity & connectType) != 0) {
590 + state.connectivity -= connectType; // Remove one connectivity mode
591 +
592 + // If the node is completely disconnected, clean it up completely
593 + if (state.connectivity == 0) { delete obj.peerConnectivityByNode[serverid][nodeid]; state.powerState = 0; }
594 + }
595 +
596 + // Clear node power state
597 + if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; }
598 + var powerState = 0;
599 + if ((state.connectivity & 1) != 0) { powerState = state.agentPower; } else if ((state.connectivity & 2) != 0) { powerState = state.ciraPower; } else if ((state.connectivity & 4) != 0) { powerState = state.amtPower; }
600 + if ((state.powerState == undefined) || (state.powerState != powerState)) { state.powerState = powerState; }
601 +
602 + // Update the combined node state
603 + var x = {}; x[nodeid] = 1;
604 + obj.UpdateConnectivityState(x);
605 + }
606 }
607
608 // Update the default mesh core
@@ -689,7 +792,7 @@ function InstallModule(modulename, func, tag1, tag2) {
792 process.on('SIGINT', function () { if (meshserver != null) { meshserver.Stop(); meshserver = null; } console.log('Server Ctrl-C exit...'); process.exit(); });
793
794 // Build the list of required modules
692 -var modules = ['nedb', 'https', 'unzip', 'xmldom', 'express', 'mongojs', 'archiver', 'minimist', 'multiparty', 'node-forge', 'express-ws', 'compression', 'body-parser', 'connect-redis', 'express-session', 'express-handlebars'];
795 +var modules = ['nedb', 'https', 'unzip', 'xmldom', 'express', 'mongojs', 'archiver', 'websocket', 'minimist', 'multiparty', 'node-forge', 'express-ws', 'compression', 'body-parser', 'connect-redis', 'express-session', 'express-handlebars'];
796 if (require('os').platform() == 'win32') { modules.push("node-windows"); }
797
798 // Run as a command line, if we are not using service arguments, don't need to install the service package.
mesherrors.txt
+1544
@@ -251,3 +251,1547 @@ Error: ENOENT: no such file or directory, stat 'C:\Users\Default.DESKTOP-M9I88C9
251 at Error (native)
252
253
254 +-------- 9/11/2017, 4:02:32 PM --------
255 +
256 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335
257 + obj.peerServers[serverId] = CreatePeerServer(obj, serverId, url);
258 + ^
259 +
260 +ReferenceError: CreatePeerServer is not defined
261 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:37)
262 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21)
263 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9)
264 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71)
265 +
266 +
267 +-------- 9/11/2017, 4:02:34 PM --------
268 +
269 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335
270 + obj.peerServers[serverId] = CreatePeerServer(obj, serverId, url);
271 + ^
272 +
273 +ReferenceError: CreatePeerServer is not defined
274 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:37)
275 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21)
276 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9)
277 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71)
278 +
279 +
280 +-------- 9/11/2017, 4:03:00 PM --------
281 +
282 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:20
283 + obj.db = db;
284 + ^
285 +
286 +ReferenceError: db is not defined
287 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:20:18)
288 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:41)
289 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21)
290 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9)
291 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71)
292 +
293 +
294 +-------- 9/11/2017, 4:08:08 PM --------
295 +
296 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22
297 + obj.settings = settings;
298 + ^
299 +
300 +ReferenceError: settings is not defined
301 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24)
302 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41)
303 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21)
304 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9)
305 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71)
306 +
307 +
308 +-------- 9/11/2017, 4:08:10 PM --------
309 +
310 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22
311 + obj.settings = settings;
312 + ^
313 +
314 +ReferenceError: settings is not defined
315 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24)
316 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41)
317 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21)
318 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9)
319 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71)
320 +
321 +
322 +-------- 9/11/2017, 4:08:55 PM --------
323 +
324 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22
325 + obj.settings = settings;
326 + ^
327 +
328 +ReferenceError: settings is not defined
329 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24)
330 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41)
331 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21)
332 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9)
333 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
334 +
335 +
336 +-------- 9/11/2017, 4:09:38 PM --------
337 +
338 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22
339 + obj.certificates = certificates;
340 + ^
341 +
342 +ReferenceError: certificates is not defined
343 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:28)
344 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:254:41)
345 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:21)
346 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:279:9)
347 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
348 +
349 +
350 +-------- 9/11/2017, 4:10:15 PM --------
351 +
352 +module.js:440
353 + throw err;
354 + ^
355 +
356 +Error: Cannot find module 'websocket'
357 + at Function.Module._resolveFilename (module.js:438:15)
358 + at Function.Module._load (module.js:386:25)
359 + at Module.require (module.js:466:17)
360 + at require (internal/module.js:20:19)
361 + at connect (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:44:31)
362 + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:185:9)
363 + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:254:41)
364 + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:21)
365 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:279:9)
366 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
367 +
368 +
369 +-------- 9/11/2017, 4:59:13 PM --------
370 +
371 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:541
372 +});
373 +^
374 +SyntaxError: Unexpected token }
375 + at exports.runInThisContext (vm.js:53:16)
376 + at Module._compile (module.js:511:25)
377 + at Object.Module._extensions..js (module.js:550:10)
378 + at Module.load (module.js:456:32)
379 + at tryModuleLoad (module.js:415:12)
380 + at Function.Module._load (module.js:407:3)
381 + at Module.require (module.js:466:17)
382 + at require (internal/module.js:20:19)
383 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:43)
384 +
385 +
386 +-------- 9/11/2017, 4:59:15 PM --------
387 +
388 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:541
389 +});
390 +^
391 +SyntaxError: Unexpected token }
392 + at exports.runInThisContext (vm.js:53:16)
393 + at Module._compile (module.js:511:25)
394 + at Object.Module._extensions..js (module.js:550:10)
395 + at Module.load (module.js:456:32)
396 + at tryModuleLoad (module.js:415:12)
397 + at Function.Module._load (module.js:407:3)
398 + at Module.require (module.js:466:17)
399 + at require (internal/module.js:20:19)
400 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:43)
401 +
402 +
403 +-------- 9/11/2017, 5:02:48 PM --------
404 +
405 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:239
406 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; }
407 + ^
408 +
409 +TypeError: Cannot read property 'webCertificatHash' of undefined
410 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:239:35)
411 + at emitTwo (events.js:106:13)
412 + at WebSocket.emit (events.js:191:7)
413 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
414 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
415 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
416 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
417 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
418 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
419 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
420 +
421 +
422 +-------- 9/11/2017, 5:08:56 PM --------
423 +
424 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247
425 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; }
426 + ^
427 +
428 +TypeError: Cannot read property 'webCertificatHash' of undefined
429 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:35)
430 + at emitTwo (events.js:106:13)
431 + at WebSocket.emit (events.js:191:7)
432 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
433 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
434 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
435 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
436 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
437 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
438 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
439 +
440 +
441 +-------- 9/11/2017, 5:10:05 PM --------
442 +
443 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247
444 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; }
445 + ^
446 +
447 +TypeError: Cannot read property 'webCertificatHash' of undefined
448 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:35)
449 + at emitTwo (events.js:106:13)
450 + at WebSocket.emit (events.js:191:7)
451 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
452 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
453 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
454 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
455 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
456 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
457 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
458 +
459 +
460 +-------- 9/11/2017, 5:10:30 PM --------
461 +
462 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213
463 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
464 + ^
465 +
466 +TypeError: Cannot read property 'wsagents' of undefined
467 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213:27)
468 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:78)
469 + at emitTwo (events.js:106:13)
470 + at WebSocket.emit (events.js:191:7)
471 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
472 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
473 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
474 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
475 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
476 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
477 +
478 +
479 +-------- 9/11/2017, 5:11:05 PM --------
480 +
481 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213
482 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
483 + ^
484 +
485 +TypeError: Cannot read property 'wsagents' of undefined
486 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213:27)
487 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:78)
488 + at emitTwo (events.js:106:13)
489 + at WebSocket.emit (events.js:191:7)
490 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
491 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
492 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
493 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
494 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
495 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
496 +
497 +
498 +-------- 9/11/2017, 5:11:56 PM --------
499 +
500 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214
501 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
502 + ^
503 +
504 +TypeError: Cannot read property 'wsagents' of undefined
505 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27)
506 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78)
507 + at emitTwo (events.js:106:13)
508 + at WebSocket.emit (events.js:191:7)
509 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
510 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
511 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
512 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
513 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
514 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
515 +
516 +
517 +-------- 9/11/2017, 5:12:29 PM --------
518 +
519 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214
520 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
521 + ^
522 +
523 +TypeError: Cannot read property 'wsagents' of undefined
524 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27)
525 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78)
526 + at emitTwo (events.js:106:13)
527 + at WebSocket.emit (events.js:191:7)
528 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
529 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
530 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
531 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
532 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
533 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
534 +
535 +
536 +-------- 9/11/2017, 5:12:51 PM --------
537 +
538 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214
539 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
540 + ^
541 +
542 +TypeError: Cannot read property 'wsagents' of undefined
543 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27)
544 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78)
545 + at emitTwo (events.js:106:13)
546 + at WebSocket.emit (events.js:191:7)
547 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
548 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
549 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
550 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
551 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
552 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
553 +
554 +
555 +-------- 9/11/2017, 5:16:57 PM --------
556 +
557 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214
558 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) {
559 + ^
560 +
561 +TypeError: Cannot read property 'wsagents' of undefined
562 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27)
563 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78)
564 + at emitTwo (events.js:106:13)
565 + at WebSocket.emit (events.js:191:7)
566 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
567 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
568 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
569 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
570 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
571 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
572 +
573 +
574 +-------- 9/11/2017, 5:18:01 PM --------
575 +
576 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:311
577 + ws.on('close', function (req) { console.log('InPeer: Close'); obj.parent.parent.debug(1, 'InPeer disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); obj.close(0); });
578 + ^
579 +
580 +TypeError: Cannot read property 'parent' of undefined
581 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:311:81)
582 + at emitTwo (events.js:111:20)
583 + at WebSocket.emit (events.js:191:7)
584 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
585 + at emitNone (events.js:91:20)
586 + at TLSSocket.emit (events.js:185:7)
587 + at endReadableNT (_stream_readable.js:926:12)
588 + at _combinedTickCallback (internal/process/next_tick.js:74:11)
589 + at process._tickCallback (internal/process/next_tick.js:98:9)
590 +
591 +
592 +-------- 9/11/2017, 5:18:41 PM --------
593 +
594 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255
595 + var privateKey = obj.forge.pki.privateKeyFromPem(obj.parent.certificates.agent.key);
596 + ^
597 +
598 +TypeError: Cannot read property 'agent' of undefined
599 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:93)
600 + at emitTwo (events.js:106:13)
601 + at WebSocket.emit (events.js:191:7)
602 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
603 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
604 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
605 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
606 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
607 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
608 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
609 +
610 +
611 +-------- 9/11/2017, 5:19:16 PM --------
612 +
613 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:262
614 + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(parent.agentCertificatAsn1.length) + parent.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature
615 + ^
616 +
617 +TypeError: Cannot read property 'length' of undefined
618 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:262:105)
619 + at emitTwo (events.js:106:13)
620 + at WebSocket.emit (events.js:191:7)
621 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
622 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
623 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
624 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
625 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
626 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
627 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
628 +
629 +
630 +-------- 9/11/2017, 5:21:07 PM --------
631 +
632 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264
633 + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(parent.agentCertificatAsn1.length) + parent.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature
634 + ^
635 +
636 +TypeError: Cannot read property 'length' of undefined
637 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:105)
638 + at emitTwo (events.js:106:13)
639 + at WebSocket.emit (events.js:191:7)
640 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
641 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
642 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
643 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
644 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
645 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
646 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
647 +
648 +
649 +-------- 9/11/2017, 5:21:54 PM --------
650 +
651 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
652 + var len = msg.length;
653 + ^
654 +
655 +TypeError: Cannot read property 'length' of undefined
656 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
657 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:117:36)
658 + at emitOne (events.js:96:13)
659 + at WebSocketConnection.emit (events.js:188:7)
660 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
661 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
662 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
663 + at process._tickCallback (internal/process/next_tick.js:98:9)
664 +
665 +
666 +-------- 9/11/2017, 5:26:34 PM --------
667 +
668 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
669 + var len = msg.length;
670 + ^
671 +
672 +TypeError: Cannot read property 'length' of undefined
673 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
674 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:117:36)
675 + at emitOne (events.js:96:13)
676 + at WebSocketConnection.emit (events.js:188:7)
677 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
678 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
679 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
680 + at process._tickCallback (internal/process/next_tick.js:98:9)
681 +
682 +
683 +-------- 9/11/2017, 5:28:45 PM --------
684 +
685 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
686 + var len = msg.length;
687 + ^
688 +
689 +TypeError: Cannot read property 'length' of undefined
690 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
691 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
692 + at emitOne (events.js:96:13)
693 + at WebSocketConnection.emit (events.js:188:7)
694 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
695 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
696 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
697 + at process._tickCallback (internal/process/next_tick.js:98:9)
698 +
699 +
700 +-------- 9/11/2017, 5:30:02 PM --------
701 +
702 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
703 + var len = msg.length;
704 + ^
705 +
706 +TypeError: Cannot read property 'length' of undefined
707 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
708 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36)
709 + at emitOne (events.js:96:13)
710 + at WebSocketConnection.emit (events.js:188:7)
711 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
712 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
713 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
714 + at process._tickCallback (internal/process/next_tick.js:98:9)
715 +
716 +
717 +-------- 9/11/2017, 5:30:40 PM --------
718 +
719 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
720 + var len = msg.length;
721 + ^
722 +
723 +TypeError: Cannot read property 'length' of undefined
724 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
725 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36)
726 + at emitOne (events.js:96:13)
727 + at WebSocketConnection.emit (events.js:188:7)
728 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
729 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
730 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
731 + at process._tickCallback (internal/process/next_tick.js:98:9)
732 +
733 +
734 +-------- 9/11/2017, 5:31:57 PM --------
735 +
736 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
737 + var len = msg.length;
738 + ^
739 +
740 +TypeError: Cannot read property 'length' of undefined
741 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
742 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
743 + at emitOne (events.js:96:13)
744 + at WebSocketConnection.emit (events.js:188:7)
745 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
746 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
747 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
748 + at process._tickCallback (internal/process/next_tick.js:98:9)
749 +
750 +
751 +-------- 9/11/2017, 5:32:34 PM --------
752 +
753 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
754 + var len = msg.length;
755 + ^
756 +
757 +TypeError: Cannot read property 'length' of undefined
758 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
759 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
760 + at emitOne (events.js:96:13)
761 + at WebSocketConnection.emit (events.js:188:7)
762 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
763 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
764 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
765 + at process._tickCallback (internal/process/next_tick.js:98:9)
766 +
767 +
768 +-------- 9/11/2017, 5:32:37 PM --------
769 +
770 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
771 + var len = msg.length;
772 + ^
773 +
774 +TypeError: Cannot read property 'length' of undefined
775 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
776 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
777 + at emitOne (events.js:96:13)
778 + at WebSocketConnection.emit (events.js:188:7)
779 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
780 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
781 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
782 + at process._tickCallback (internal/process/next_tick.js:98:9)
783 +
784 +
785 +-------- 9/11/2017, 5:34:16 PM --------
786 +
787 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
788 + var len = msg.length;
789 + ^
790 +
791 +TypeError: Cannot read property 'length' of undefined
792 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
793 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
794 + at emitOne (events.js:96:13)
795 + at WebSocketConnection.emit (events.js:188:7)
796 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
797 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
798 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
799 + at process._tickCallback (internal/process/next_tick.js:98:9)
800 +
801 +
802 +-------- 9/11/2017, 5:34:19 PM --------
803 +
804 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
805 + var len = msg.length;
806 + ^
807 +
808 +TypeError: Cannot read property 'length' of undefined
809 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
810 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
811 + at emitOne (events.js:96:13)
812 + at WebSocketConnection.emit (events.js:188:7)
813 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
814 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
815 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
816 + at process._tickCallback (internal/process/next_tick.js:98:9)
817 +
818 +
819 +-------- 9/11/2017, 5:34:22 PM --------
820 +
821 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
822 + var len = msg.length;
823 + ^
824 +
825 +TypeError: Cannot read property 'length' of undefined
826 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
827 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
828 + at emitOne (events.js:96:13)
829 + at WebSocketConnection.emit (events.js:188:7)
830 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
831 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
832 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
833 + at process._tickCallback (internal/process/next_tick.js:98:9)
834 +
835 +
836 +-------- 9/11/2017, 5:34:25 PM --------
837 +
838 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
839 + var len = msg.length;
840 + ^
841 +
842 +TypeError: Cannot read property 'length' of undefined
843 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
844 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
845 + at emitOne (events.js:96:13)
846 + at WebSocketConnection.emit (events.js:188:7)
847 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
848 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
849 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
850 + at process._tickCallback (internal/process/next_tick.js:98:9)
851 +
852 +
853 +-------- 9/11/2017, 5:34:28 PM --------
854 +
855 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
856 + var len = msg.length;
857 + ^
858 +
859 +TypeError: Cannot read property 'length' of undefined
860 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
861 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
862 + at emitOne (events.js:96:13)
863 + at WebSocketConnection.emit (events.js:188:7)
864 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
865 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
866 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
867 + at process._tickCallback (internal/process/next_tick.js:98:9)
868 +
869 +
870 +-------- 9/11/2017, 5:34:31 PM --------
871 +
872 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
873 + var len = msg.length;
874 + ^
875 +
876 +TypeError: Cannot read property 'length' of undefined
877 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
878 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
879 + at emitOne (events.js:96:13)
880 + at WebSocketConnection.emit (events.js:188:7)
881 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
882 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
883 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
884 + at process._tickCallback (internal/process/next_tick.js:98:9)
885 +
886 +
887 +-------- 9/11/2017, 5:34:34 PM --------
888 +
889 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
890 + var len = msg.length;
891 + ^
892 +
893 +TypeError: Cannot read property 'length' of undefined
894 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
895 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
896 + at emitOne (events.js:96:13)
897 + at WebSocketConnection.emit (events.js:188:7)
898 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
899 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
900 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
901 + at process._tickCallback (internal/process/next_tick.js:98:9)
902 +
903 +
904 +-------- 9/11/2017, 5:34:37 PM --------
905 +
906 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
907 + var len = msg.length;
908 + ^
909 +
910 +TypeError: Cannot read property 'length' of undefined
911 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
912 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
913 + at emitOne (events.js:96:13)
914 + at WebSocketConnection.emit (events.js:188:7)
915 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
916 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
917 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
918 + at process._tickCallback (internal/process/next_tick.js:98:9)
919 +
920 +
921 +-------- 9/11/2017, 5:34:40 PM --------
922 +
923 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
924 + var len = msg.length;
925 + ^
926 +
927 +TypeError: Cannot read property 'length' of undefined
928 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
929 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36)
930 + at emitOne (events.js:96:13)
931 + at WebSocketConnection.emit (events.js:188:7)
932 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
933 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
934 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
935 + at process._tickCallback (internal/process/next_tick.js:98:9)
936 +
937 +
938 +-------- 9/11/2017, 5:39:14 PM --------
939 +
940 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
941 + var len = msg.length;
942 + ^
943 +
944 +TypeError: Cannot read property 'length' of undefined
945 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
946 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36)
947 + at emitOne (events.js:96:13)
948 + at WebSocketConnection.emit (events.js:188:7)
949 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
950 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
951 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
952 + at process._tickCallback (internal/process/next_tick.js:98:9)
953 +
954 +
955 +-------- 9/11/2017, 5:39:35 PM --------
956 +
957 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
958 + var len = msg.length;
959 + ^
960 +
961 +TypeError: Cannot read property 'length' of undefined
962 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
963 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36)
964 + at emitOne (events.js:96:13)
965 + at WebSocketConnection.emit (events.js:188:7)
966 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
967 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
968 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
969 + at process._tickCallback (internal/process/next_tick.js:98:9)
970 +
971 +
972 +-------- 9/11/2017, 5:41:15 PM --------
973 +
974 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
975 + var len = msg.length;
976 + ^
977 +
978 +TypeError: Cannot read property 'length' of undefined
979 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
980 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:122:36)
981 + at emitOne (events.js:96:13)
982 + at WebSocketConnection.emit (events.js:188:7)
983 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
984 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
985 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
986 + at process._tickCallback (internal/process/next_tick.js:98:9)
987 +
988 +
989 +-------- 9/11/2017, 5:43:54 PM --------
990 +
991 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
992 + var len = msg.length;
993 + ^
994 +
995 +TypeError: Cannot read property 'length' of undefined
996 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
997 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36)
998 + at emitOne (events.js:96:13)
999 + at WebSocketConnection.emit (events.js:188:7)
1000 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
1001 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
1002 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
1003 + at process._tickCallback (internal/process/next_tick.js:98:9)
1004 +
1005 +
1006 +-------- 9/11/2017, 5:44:22 PM --------
1007 +
1008 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
1009 + var len = msg.length;
1010 + ^
1011 +
1012 +TypeError: Cannot read property 'length' of undefined
1013 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
1014 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36)
1015 + at emitOne (events.js:96:13)
1016 + at WebSocketConnection.emit (events.js:188:7)
1017 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
1018 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
1019 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
1020 + at process._tickCallback (internal/process/next_tick.js:98:9)
1021 +
1022 +
1023 +-------- 9/11/2017, 5:46:50 PM --------
1024 +
1025 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
1026 + var len = msg.length;
1027 + ^
1028 +
1029 +TypeError: Cannot read property 'length' of undefined
1030 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
1031 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36)
1032 + at emitOne (events.js:96:13)
1033 + at WebSocketConnection.emit (events.js:188:7)
1034 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
1035 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
1036 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
1037 + at process._tickCallback (internal/process/next_tick.js:98:9)
1038 +
1039 +
1040 +-------- 9/11/2017, 5:48:17 PM --------
1041 +
1042 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
1043 + var len = msg.length;
1044 + ^
1045 +
1046 +TypeError: Cannot read property 'length' of undefined
1047 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
1048 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36)
1049 + at emitOne (events.js:96:13)
1050 + at WebSocketConnection.emit (events.js:188:7)
1051 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
1052 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
1053 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
1054 + at process._tickCallback (internal/process/next_tick.js:98:9)
1055 +
1056 +
1057 +-------- 9/11/2017, 5:49:30 PM --------
1058 +
1059 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:105
1060 + obj.conn.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(obj.agentRootCertificatAsn1.length) + obj.agentRootCertificatAsn1 + privateKey.sign(md)); // Command 3, signature
1061 + ^
1062 +
1063 +TypeError: Cannot read property 'length' of undefined
1064 + at WebSocketConnection.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:105:123)
1065 + at emitOne (events.js:96:13)
1066 + at WebSocketConnection.emit (events.js:188:7)
1067 + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26)
1068 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40
1069 + at _combinedTickCallback (internal/process/next_tick.js:67:7)
1070 + at process._tickCallback (internal/process/next_tick.js:98:9)
1071 +
1072 +
1073 +-------- 9/11/2017, 5:54:31 PM --------
1074 +
1075 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99
1076 + var len = msg.length;
1077 + ^
1078 +
1079 +TypeError: Cannot read property 'length' of undefined
1080 + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18)
1081 + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:435:16)
1082 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:29)
1083 + at emitTwo (events.js:106:13)
1084 + at WebSocket.emit (events.js:191:7)
1085 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1086 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1087 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1088 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1089 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1090 +
1091 +
1092 +-------- 9/11/2017, 5:56:39 PM --------
1093 +
1094 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:442
1095 + obj.dbNodeKey = 'node/' + domain.id + '/' + obj.nodeid;
1096 + ^
1097 +
1098 +ReferenceError: domain is not defined
1099 + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:442:39)
1100 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:29)
1101 + at emitTwo (events.js:106:13)
1102 + at WebSocket.emit (events.js:191:7)
1103 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1104 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1105 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1106 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1107 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1108 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1109 +
1110 +
1111 +-------- 9/12/2017, 9:15:05 AM --------
1112 +
1113 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13
1114 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
1115 + ^
1116 +
1117 +TypeError: Cannot read property 'pki' of undefined
1118 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39)
1119 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1120 +
1121 +
1122 +-------- 9/12/2017, 9:15:07 AM --------
1123 +
1124 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13
1125 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
1126 + ^
1127 +
1128 +TypeError: Cannot read property 'pki' of undefined
1129 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39)
1130 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1131 +
1132 +
1133 +-------- 9/12/2017, 9:15:09 AM --------
1134 +
1135 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13
1136 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
1137 + ^
1138 +
1139 +TypeError: Cannot read property 'pki' of undefined
1140 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39)
1141 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1142 +
1143 +
1144 +-------- 9/12/2017, 9:15:11 AM --------
1145 +
1146 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13
1147 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
1148 + ^
1149 +
1150 +TypeError: Cannot read property 'pki' of undefined
1151 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39)
1152 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1153 +
1154 +
1155 +-------- 9/12/2017, 9:15:50 AM --------
1156 +
1157 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13
1158 + obj.ourOwnServerRootId = require('node-forge').pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
1159 + ^
1160 +
1161 +TypeError: Cannot read property 'md' of undefined
1162 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:148)
1163 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1164 +
1165 +
1166 +-------- 9/12/2017, 9:16:06 AM --------
1167 +
1168 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389
1169 + _bnToBytes(key.n)),
1170 + ^
1171 +
1172 +TypeError: Cannot read property 'n' of undefined
1173 + at Object.pki.publicKeyToRSAPublicKey (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389:21)
1174 + at Object.pki.getPublicKeyFingerprint (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\x509.js:818:28)
1175 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:44)
1176 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1177 +
1178 +
1179 +-------- 9/12/2017, 9:16:51 AM --------
1180 +
1181 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1680
1182 + var hex = b.toString(16);
1183 + ^
1184 +
1185 +TypeError: Cannot read property 'toString' of undefined
1186 + at _bnToBytes (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1680:14)
1187 + at Object.pki.publicKeyToRSAPublicKey (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389:7)
1188 + at Object.pki.getPublicKeyFingerprint (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\x509.js:818:28)
1189 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:44)
1190 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1191 +
1192 +
1193 +-------- 9/12/2017, 9:18:37 AM --------
1194 +
1195 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:491
1196 + throw error;
1197 + ^
1198 +
1199 +Error: Too few bytes to read ASN.1 value.
1200 + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:487:19)
1201 + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:524:20)
1202 + at Object.asn1.fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:448:10)
1203 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:73)
1204 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1205 +
1206 +
1207 +-------- 9/12/2017, 9:23:44 AM --------
1208 +
1209 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:15
1210 + obj.webCertificatHash = obj.parent.webserver.webCertificatHash;
1211 + ^
1212 +
1213 +TypeError: Cannot read property 'webCertificatHash' of undefined
1214 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:15:49)
1215 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1216 +
1217 +
1218 +-------- 9/12/2017, 9:24:58 AM --------
1219 +
1220 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:491
1221 + throw error;
1222 + ^
1223 +
1224 +Error: Too few bytes to read ASN.1 value.
1225 + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:487:19)
1226 + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:524:20)
1227 + at Object.asn1.fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:448:10)
1228 + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:73)
1229 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71)
1230 +
1231 +
1232 +-------- 9/12/2017, 9:38:03 AM --------
1233 +
1234 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\db.js:45
1235 + obj.identifier = new Buffer(obj.crypto.randomBytes(32), 'binary').toString('hex');
1236 + ^
1237 +
1238 +TypeError: Cannot read property 'randomBytes' of undefined
1239 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\db.js:45:55
1240 + at newArguments.(anonymous function) (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\executor.js:29:17)
1241 + at Cursor.execFn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:484:12)
1242 + at callback (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:126:19)
1243 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:193:12
1244 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:329:14
1245 + at Object.async.eachSeries (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:130:20)
1246 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:323:11
1247 + at fn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:582:34)
1248 + at Immediate._onImmediate (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:498:34)
1249 +
1250 +
1251 +-------- 9/12/2017, 9:58:55 AM --------
1252 +
1253 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:544
1254 + throw new Error('Encrypted message is invalid.');
1255 + ^
1256 +
1257 +Error: Encrypted message is invalid.
1258 + at Object.pki.rsa.decrypt (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:544:11)
1259 + at Object.key.verify (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1070:22)
1260 + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:437:47)
1261 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263:29)
1262 + at emitTwo (events.js:106:13)
1263 + at WebSocket.emit (events.js:191:7)
1264 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1265 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1266 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1267 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1268 +
1269 +
1270 +-------- 9/12/2017, 10:28:53 AM --------
1271 +
1272 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280
1273 + completeAgentConnection();
1274 + ^
1275 +
1276 +ReferenceError: completeAgentConnection is not defined
1277 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21)
1278 + at emitTwo (events.js:106:13)
1279 + at WebSocket.emit (events.js:191:7)
1280 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1281 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1282 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1283 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1284 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1285 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1286 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
1287 +
1288 +
1289 +-------- 9/12/2017, 10:28:56 AM --------
1290 +
1291 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280
1292 + completeAgentConnection();
1293 + ^
1294 +
1295 +ReferenceError: completeAgentConnection is not defined
1296 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21)
1297 + at emitTwo (events.js:106:13)
1298 + at WebSocket.emit (events.js:191:7)
1299 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1300 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1301 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1302 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1303 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1304 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1305 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
1306 +
1307 +
1308 +-------- 9/12/2017, 10:35:18 AM --------
1309 +
1310 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263
1311 + if (processAgentSignature(obj.unauthsign) == false) { disonnect(); return; } else { completeAgentConnection(); }
1312 + ^
1313 +
1314 +ReferenceError: completeAgentConnection is not defined
1315 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263:109)
1316 + at emitTwo (events.js:106:13)
1317 + at WebSocket.emit (events.js:191:7)
1318 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1319 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1320 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1321 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1322 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1323 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1324 + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33)
1325 +
1326 +
1327 +-------- 9/12/2017, 10:36:49 AM --------
1328 +
1329 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308
1330 + var msg = { action: 'info', serverid: obj.peerConfig.serverId, dbid: obj.parent.db.identifier };
1331 + ^
1332 +
1333 +TypeError: Cannot read property 'serverId' of undefined
1334 + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:65)
1335 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21)
1336 + at emitTwo (events.js:106:13)
1337 + at WebSocket.emit (events.js:191:7)
1338 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1339 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1340 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1341 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1342 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1343 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1344 +
1345 +
1346 +-------- 9/12/2017, 10:36:52 AM --------
1347 +
1348 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308
1349 + var msg = { action: 'info', serverid: obj.peerConfig.serverId, dbid: obj.parent.db.identifier };
1350 + ^
1351 +
1352 +TypeError: Cannot read property 'serverId' of undefined
1353 + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:65)
1354 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21)
1355 + at emitTwo (events.js:106:13)
1356 + at WebSocket.emit (events.js:191:7)
1357 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1358 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1359 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1360 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1361 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1362 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1363 +
1364 +
1365 +-------- 9/12/2017, 10:38:31 AM --------
1366 +
1367 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308
1368 + var msg = { action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.db.identifier };
1369 + ^
1370 +
1371 +TypeError: Cannot read property 'identifier' of undefined
1372 + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:102)
1373 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21)
1374 + at emitTwo (events.js:106:13)
1375 + at WebSocket.emit (events.js:191:7)
1376 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1377 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1378 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1379 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1380 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1381 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1382 +
1383 +
1384 +-------- 9/12/2017, 11:10:29 AM --------
1385 +
1386 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:309
1387 + if ((obj.authenticated == 1) && (infoSent == false)) {
1388 + ^
1389 +
1390 +ReferenceError: infoSent is not defined
1391 + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:309:46)
1392 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:266:109)
1393 + at emitTwo (events.js:106:13)
1394 + at WebSocket.emit (events.js:191:7)
1395 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1396 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1397 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1398 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1399 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1400 + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12)
1401 +
1402 +
1403 +-------- 9/12/2017, 5:23:34 PM --------
1404 +
1405 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440
1406 + obj.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.connectivityByMesh }));
1407 + ^
1408 +
1409 +TypeError: obj.send is not a function
1410 + at Object.obj.SetupPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440:13)
1411 + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:40)
1412 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49)
1413 + at emitTwo (events.js:106:13)
1414 + at WebSocket.emit (events.js:191:7)
1415 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1416 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1417 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1418 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1419 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1420 +
1421 +
1422 +-------- 9/12/2017, 5:23:37 PM --------
1423 +
1424 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440
1425 + obj.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.connectivityByMesh }));
1426 + ^
1427 +
1428 +TypeError: obj.send is not a function
1429 + at Object.obj.SetupPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440:13)
1430 + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:40)
1431 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49)
1432 + at emitTwo (events.js:106:13)
1433 + at WebSocket.emit (events.js:191:7)
1434 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1435 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1436 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1437 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1438 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1439 +
1440 +
1441 +-------- 9/12/2017, 5:24:26 PM --------
1442 +
1443 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460
1444 + obj.peerConnectivityByMesh[peerServerId] = msg.connectivityTable;
1445 + ^
1446 +
1447 +TypeError: Cannot set property 'amtmachine7' of undefined
1448 + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460:58)
1449 + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32)
1450 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49)
1451 + at emitTwo (events.js:106:13)
1452 + at WebSocket.emit (events.js:191:7)
1453 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1454 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1455 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1456 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1457 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1458 +
1459 +
1460 +-------- 9/12/2017, 5:24:29 PM --------
1461 +
1462 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460
1463 + obj.peerConnectivityByMesh[peerServerId] = msg.connectivityTable;
1464 + ^
1465 +
1466 +TypeError: Cannot set property 'amtmachine7' of undefined
1467 + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460:58)
1468 + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32)
1469 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49)
1470 + at emitTwo (events.js:106:13)
1471 + at WebSocket.emit (events.js:191:7)
1472 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1473 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1474 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1475 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1476 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1477 +
1478 +
1479 +-------- 9/12/2017, 5:25:43 PM --------
1480 +
1481 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:463
1482 + for (var nodeid in connectionsForMesh) { obj.parent.peerConnectivityByNode[peerServerId][nodeid] = connectionsForMesh[nodeid]; }
1483 + ^
1484 +
1485 +TypeError: Cannot set property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined
1486 + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:463:118)
1487 + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32)
1488 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49)
1489 + at emitTwo (events.js:106:13)
1490 + at WebSocket.emit (events.js:191:7)
1491 + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10)
1492 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18
1493 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5)
1494 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14
1495 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3)
1496 +
1497 +
1498 +-------- 9/12/2017, 5:32:16 PM --------
1499 +
1500 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296
1501 + if (obj.multiServer != null) { obj.serverid = obj.peerConfig.serverId; console.log('RRR', obj.serverid); }
1502 + ^
1503 +
1504 +TypeError: Cannot read property 'serverId' of undefined
1505 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296:85)
1506 +
1507 +
1508 +-------- 9/12/2017, 5:32:18 PM --------
1509 +
1510 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296
1511 + if (obj.multiServer != null) { obj.serverid = obj.peerConfig.serverId; console.log('RRR', obj.serverid); }
1512 + ^
1513 +
1514 +TypeError: Cannot read property 'serverId' of undefined
1515 + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296:85)
1516 +
1517 +
1518 +-------- 9/12/2017, 10:31:38 PM --------
1519 +
1520 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483
1521 + var state = obj.peerConnectivityByNode[serverid][nodeid];
1522 + ^
1523 +
1524 +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined
1525 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483:61)
1526 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1527 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1528 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1529 + at emitTwo (events.js:106:13)
1530 + at Socket.emit (events.js:191:7)
1531 + at UDP.onMessage (dgram.js:532:8)
1532 +
1533 +
1534 +-------- 9/12/2017, 10:31:40 PM --------
1535 +
1536 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483
1537 + var state = obj.peerConnectivityByNode[serverid][nodeid];
1538 + ^
1539 +
1540 +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined
1541 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483:61)
1542 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1543 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1544 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1545 + at emitTwo (events.js:106:13)
1546 + at Socket.emit (events.js:191:7)
1547 + at UDP.onMessage (dgram.js:532:8)
1548 +
1549 +
1550 +-------- 9/12/2017, 10:33:42 PM --------
1551 +
1552 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486
1553 + var state = obj.peerConnectivityByNode[serverid][nodeid];
1554 + ^
1555 +
1556 +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined
1557 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486:61)
1558 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1559 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1560 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1561 + at emitTwo (events.js:106:13)
1562 + at Socket.emit (events.js:191:7)
1563 + at UDP.onMessage (dgram.js:532:8)
1564 +
1565 +
1566 +-------- 9/12/2017, 10:34:04 PM --------
1567 +
1568 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486
1569 + var state = obj.peerConnectivityByNode[serverid][nodeid];
1570 + ^
1571 +
1572 +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined
1573 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486:61)
1574 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1575 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1576 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1577 + at emitTwo (events.js:106:13)
1578 + at Socket.emit (events.js:191:7)
1579 + at UDP.onMessage (dgram.js:532:8)
1580 +
1581 +
1582 +-------- 9/12/2017, 10:58:04 PM --------
1583 +
1584 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:436
1585 + var state = null, oldState = obj.connectivityByNode[nodeid];
1586 + ^
1587 +
1588 +ReferenceError: nodeid is not defined
1589 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:436:65)
1590 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17)
1591 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1592 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1593 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1594 + at emitTwo (events.js:106:13)
1595 + at Socket.emit (events.js:191:7)
1596 + at UDP.onMessage (dgram.js:532:8)
1597 +
1598 +
1599 +-------- 9/12/2017, 10:58:30 PM --------
1600 +
1601 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450
1602 + state.connectivity |= peerState.connectivity;
1603 + ^
1604 +
1605 +TypeError: Cannot read property 'connectivity' of null
1606 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26)
1607 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17)
1608 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1609 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1610 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1611 + at emitTwo (events.js:106:13)
1612 + at Socket.emit (events.js:191:7)
1613 + at UDP.onMessage (dgram.js:532:8)
1614 +
1615 +
1616 +-------- 9/12/2017, 11:00:05 PM --------
1617 +
1618 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450
1619 + state.connectivity |= peerState.connectivity;
1620 + ^
1621 +
1622 +TypeError: Cannot read property 'connectivity' of undefined
1623 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26)
1624 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17)
1625 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1626 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1627 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1628 + at emitTwo (events.js:106:13)
1629 + at Socket.emit (events.js:191:7)
1630 + at UDP.onMessage (dgram.js:532:8)
1631 +
1632 +
1633 +-------- 9/12/2017, 11:00:07 PM --------
1634 +
1635 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450
1636 + state.connectivity |= peerState.connectivity;
1637 + ^
1638 +
1639 +TypeError: Cannot read property 'connectivity' of undefined
1640 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26)
1641 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17)
1642 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1643 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1644 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1645 + at emitTwo (events.js:106:13)
1646 + at Socket.emit (events.js:191:7)
1647 + at UDP.onMessage (dgram.js:532:8)
1648 +
1649 +
1650 +-------- 9/12/2017, 11:25:31 PM --------
1651 +
1652 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:598
1653 + delete obj.peerConnectivityByNode[serverid][meshid][nodeid];
1654 + ^
1655 +
1656 +TypeError: Cannot convert undefined or null to object
1657 + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:598:73)
1658 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31)
1659 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133)
1660 + at emitTwo (events.js:111:20)
1661 + at WebSocket.emit (events.js:191:7)
1662 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
1663 + at emitNone (events.js:91:20)
1664 + at TLSSocket.emit (events.js:185:7)
1665 + at endReadableNT (_stream_readable.js:926:12)
1666 + at _combinedTickCallback (internal/process/next_tick.js:74:11)
1667 +
1668 +
1669 +-------- 9/12/2017, 11:26:16 PM --------
1670 +
1671 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:616
1672 + if (((newstate != null) && (oldstate == null)) || (oldstate.connectivity != newstate.connectivity) || (oldstate.powerState != newstate.powerState)) {
1673 + ^
1674 +
1675 +TypeError: Cannot read property 'connectivity' of null
1676 + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:616:97)
1677 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31)
1678 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133)
1679 + at emitTwo (events.js:111:20)
1680 + at WebSocket.emit (events.js:191:7)
1681 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
1682 + at emitNone (events.js:91:20)
1683 + at TLSSocket.emit (events.js:185:7)
1684 + at endReadableNT (_stream_readable.js:926:12)
1685 + at _combinedTickCallback (internal/process/next_tick.js:74:11)
1686 +
1687 +
1688 +-------- 9/12/2017, 11:27:27 PM --------
1689 +
1690 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:617
1691 + if (((newstate != null) && (oldstate == null)) || (oldstate.connectivity != newstate.connectivity) || (oldstate.powerState != newstate.powerState)) {
1692 + ^
1693 +
1694 +TypeError: Cannot read property 'connectivity' of null
1695 + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:617:97)
1696 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31)
1697 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133)
1698 + at emitTwo (events.js:111:20)
1699 + at WebSocket.emit (events.js:191:7)
1700 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
1701 + at emitNone (events.js:91:20)
1702 + at TLSSocket.emit (events.js:185:7)
1703 + at endReadableNT (_stream_readable.js:926:12)
1704 + at _combinedTickCallback (internal/process/next_tick.js:74:11)
1705 +
1706 +
1707 +-------- 9/12/2017, 11:29:50 PM --------
1708 +
1709 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:620
1710 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 });
1711 + ^
1712 +
1713 +TypeError: Cannot read property 'connectivity' of null
1714 + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:620:126)
1715 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31)
1716 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133)
1717 + at emitTwo (events.js:111:20)
1718 + at WebSocket.emit (events.js:191:7)
1719 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
1720 + at emitNone (events.js:91:20)
1721 + at TLSSocket.emit (events.js:185:7)
1722 + at endReadableNT (_stream_readable.js:926:12)
1723 + at _combinedTickCallback (internal/process/next_tick.js:74:11)
1724 +
1725 +
1726 +-------- 9/12/2017, 11:47:49 PM --------
1727 +
1728 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:443
1729 + var peerState = obj.peerConnectivityByNode[serverid][nodeid];
1730 + ^
1731 +
1732 +TypeError: Cannot read property 'node//46EE880CF680F1665D00FE085FE1DE9D909BF62251BDC5DA54887231469FF086' of undefined
1733 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:443:69)
1734 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:535:17)
1735 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:281:39
1736 + at newArguments.(anonymous function) (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\executor.js:29:17)
1737 + at Cursor.execFn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:484:12)
1738 + at callback (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:126:19)
1739 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:193:12
1740 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:329:14
1741 + at Object.async.eachSeries (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:130:20)
1742 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:323:11
1743 +
1744 +
1745 +-------- 9/13/2017, 10:16:17 AM --------
1746 +
1747 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471
1748 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 });
1749 + ^
1750 +
1751 +ReferenceError: newstate is not defined
1752 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471:118)
1753 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:546:17)
1754 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1755 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1756 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1757 + at emitTwo (events.js:106:13)
1758 + at Socket.emit (events.js:191:7)
1759 + at UDP.onMessage (dgram.js:532:8)
1760 +
1761 +
1762 +-------- 9/13/2017, 10:16:19 AM --------
1763 +
1764 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471
1765 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 });
1766 + ^
1767 +
1768 +ReferenceError: newstate is not defined
1769 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471:118)
1770 + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:546:17)
1771 + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28)
1772 + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43)
1773 + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57)
1774 + at emitTwo (events.js:106:13)
1775 + at Socket.emit (events.js:191:7)
1776 + at UDP.onMessage (dgram.js:532:8)
1777 +
1778 +
1779 +-------- 9/13/2017, 10:41:12 AM --------
1780 +
1781 +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:468
1782 + console.log('xx', nodeid, state.meshid, newConnectivity, oldPowerState, newPowerState, oldPowerState);
1783 + ^
1784 +
1785 +TypeError: Cannot read property 'meshid' of null
1786 + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:468:44)
1787 + at Object.obj.ClearPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:455:20)
1788 + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:241:54)
1789 + at WebSocket.<anonymous> (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:310:138)
1790 + at emitTwo (events.js:111:20)
1791 + at WebSocket.emit (events.js:191:7)
1792 + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8)
1793 + at emitOne (events.js:101:20)
1794 + at TLSSocket.emit (events.js:188:7)
1795 + at emitErrorNT (net.js:1265:8)
1796 +
1797 +
multiserver.js
+426 -17
@@ -9,10 +9,381 @@ module.exports.CreateMultiServer = function (parent, args) {
9 var obj = {};
10 obj.parent = parent;
11 obj.crypto = require('crypto');
12 + obj.peerConfig = parent.config.peers;
13 + obj.forge = require('node-forge');
14 + obj.outPeerServers = {}; // Outgoing peer servers
15 + obj.peerServers = {}; // All connected servers (in & out). Only present in this list if the connection is setup
16 +
17 + // Create a mesh server module that will connect to other servers
18 + obj.CreatePeerOutServer = function (parent, serverid, url) {
19 + var obj = {};
20 + obj.parent = parent;
21 + obj.serverid = serverid;
22 + obj.url = url;
23 + obj.ws = null;
24 + obj.conn = null;
25 + obj.certificates = parent.parent.certificates;
26 + obj.common = require('./common.js');
27 + obj.forge = require('node-forge');
28 + obj.crypto = require('crypto');
29 + obj.pki = obj.forge.pki;
30 + obj.connectionState = 0;
31 + obj.retryTimer = null;
32 + obj.retryBackoff = 0;
33 + obj.connectHandler = null;
34 + obj.webCertificatHash = obj.parent.parent.webserver.webCertificatHash;
35 + obj.agentCertificatHashHex = obj.parent.parent.webserver.agentCertificatHashHex;
36 + obj.agentCertificatAsn1 = obj.parent.parent.webserver.agentCertificatAsn1;
37 + obj.peerServerId = null;
38 + obj.authenticated = 0;
39 +
40 + // Disconnect from the server and/or stop trying
41 + obj.stop = function () {
42 + obj.connectionState = 0;
43 + disconnect();
44 + }
45 +
46 + // Make one attempt at connecting to the server
47 + function connect() {
48 + obj.retryTimer = null;
49 + obj.connectionState = 1;
50 +
51 + // Get the web socket setup
52 + const WebSocket = require('websocket');
53 + var WebSocketClient = require('websocket').client;
54 + obj.ws = new WebSocketClient();
55 + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Connecting to: ' + url + 'meshserver.ashx');
56 +
57 + // Register the connection failed event
58 + obj.ws.on('connectFailed', function (error) { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Failed connection'); disconnect(); });
59 +
60 + // Register the connection event
61 + obj.ws.on('connect', function (connection) {
62 + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Connected');
63 + if (obj.meshScanner != null) { obj.meshScanner.stop(); }
64 + obj.connectionState |= 2;
65 + obj.conn = connection;
66 + obj.nonce = obj.forge.random.getBytesSync(32);
67 +
68 + // If the connection has an error or closes
69 + obj.conn.on('error', function (error) { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Error: ' + error); disconnect(); });
70 + obj.conn.on('close', function () { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Disconnected'); disconnect(); });
71 +
72 + // Get the peer server's certificate and compute the server public key hash
73 + if (obj.ws.socket == undefined) return;
74 + var rawcertbuf = obj.ws.socket.getPeerCertificate().raw, rawcert = '';
75 + for (var i = 0; i < rawcertbuf.length; i++) { rawcert += String.fromCharCode(rawcertbuf[i]); }
76 + var serverCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(rawcert));
77 + obj.serverCertHash = obj.forge.pki.getPublicKeyFingerprint(serverCert.publicKey, { encoding: 'binary', md: obj.forge.md.sha256.create() });
78 +
79 + // If a message is received
80 + obj.conn.on('message', function (msg) {
81 + if (msg.type == 'binary') { var msg2 = ""; for (var i = 0; i < msg.binaryData.length; i++) { msg2 += String.fromCharCode(msg.binaryData[i]); } msg = msg2; }
82 + else if (msg.type == 'utf8') { msg = msg.utf8Data; }
83 + if (msg.length < 2) return;
84 +
85 + if (msg.charCodeAt(0) == 123) {
86 + if (obj.connectionState == 15) { processServerData(msg); }
87 + } else {
88 + var cmd = obj.common.ReadShort(msg, 0);
89 + switch (cmd) {
90 + case 1: {
91 + // Server authentication request
92 + if (msg.length != 66) { obj.parent.parent.debug(1, 'OutPeer: BAD MESSAGE(A1)'); return; }
93 +
94 + // Check that the server hash matches the TLS server certificate public key hash
95 + if (obj.serverCertHash != msg.substring(2, 34)) { obj.parent.parent.debug(1, 'OutPeer: Server hash mismatch.'); disconnect(); return; }
96 + obj.servernonce = msg.substring(34);
97 +
98 + // Use our agent root private key to sign the ServerHash + ServerNonce + AgentNonce
99 + var privateKey = obj.forge.pki.privateKeyFromPem(obj.certificates.agent.key);
100 + var md = obj.forge.md.sha256.create();
101 + md.update(msg.substring(2), 'binary');
102 + md.update(obj.nonce, 'binary');
103 +
104 + // Send back our certificate + signature
105 + agentRootCertificatAsn1 = obj.forge.asn1.toDer(obj.forge.pki.certificateToAsn1(obj.forge.pki.certificateFromPem(obj.certificates.agent.cert))).getBytes();
106 + obj.conn.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(agentRootCertificatAsn1.length) + agentRootCertificatAsn1 + privateKey.sign(md)); // Command 3, signature
107 + break;
108 + }
109 + case 2: {
110 + // Server certificate
111 + var certlen = obj.common.ReadShort(msg, 2), serverCert = null;
112 + try { serverCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(msg.substring(4, 4 + certlen))); } catch (e) { }
113 + if (serverCert == null) { obj.parent.parent.debug(1, 'OutPeer: Invalid server certificate.'); disconnect(); return; }
114 + var serverid = obj.forge.pki.getPublicKeyFingerprint(serverCert.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
115 + if (serverid !== obj.agentCertificatHashHex) { obj.parent.parent.debug(1, 'OutPeer: Server hash mismatch.'); disconnect(); return; }
116 +
117 + // Server signature, verify it
118 + var md = obj.forge.md.sha256.create();
119 + md.update(obj.serverCertHash, 'binary');
120 + md.update(obj.nonce, 'binary');
121 + md.update(obj.servernonce, 'binary');
122 + if (serverCert.publicKey.verify(md.digest().bytes(), msg.substring(4 + certlen)) == false) { obj.parent.parent.debug(1, 'OutPeer: Server sign check failed.'); disconnect(); return; }
123 +
124 + // Connection is a success, clean up
125 + delete obj.nonce;
126 + delete obj.servernonce;
127 + delete obj.serverCertHash;
128 + obj.connectionState |= 4;
129 + obj.retryBackoff = 0; // Set backoff connection timer back to fast.
130 + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Verified peer connection to ' + obj.url);
131 +
132 + // Send information about our server to the peer
133 + if (obj.connectionState == 15) { obj.conn.send(JSON.stringify({ action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.parent.db.identifier, key: obj.parent.serverKey })); }
134 + //if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(1); }
135 + break;
136 + }
137 + case 4: {
138 + // Server confirmed authentication, we are allowed to send commands to the server
139 + obj.connectionState |= 8;
140 + if (obj.connectionState == 15) { obj.conn.send(JSON.stringify({ action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.parent.db.identifier, key: obj.parent.serverKey })); }
141 + //if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(1); }
142 + break;
143 + }
144 + default: {
145 + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Un-handled command: ' + cmd);
146 + break;
147 + }
148 + }
149 + }
150 + });
151 +
152 + // Not sure why, but we need to delay the first send
153 + setTimeout(function () {
154 + if ((obj.ws == null) || (obj.conn == null)) return;
155 + // Start authenticate the mesh agent by sending a auth nonce & server TLS cert hash.
156 + // Send 256 bits SHA256 hash of TLS cert public key + 256 bits nonce
157 + obj.conn.send(obj.common.ShortToStr(1) + obj.serverCertHash + obj.nonce); // Command 1, hash + nonce
158 + }, 10);
159 + });
160 +
161 + obj.ws.connect(obj.url + 'meshserver.ashx', null, null, null, { rejectUnauthorized: false, cert: obj.certificates.agent.cert, key: obj.certificates.agent.key });
162 + }
163 +
164 + // Disconnect from the server, if we need to, try again with a delay.
165 + function disconnect() {
166 + if (obj.authenticated == 3) { obj.parent.ClearPeerServer(obj, obj.peerServerId); obj.authenticated = 0; }
167 + if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(0); }
168 + if (obj.conn != null) { obj.conn.close(); obj.conn = null; }
169 + if (obj.ws != null) { obj.ws = null; }
170 + if (obj.retryTimer != null) { clearTimeout(obj.retryTimer); obj.retryTimer = null; }
171 + // Re-try connection
172 + if (obj.connectionState >= 1) { obj.connectionState = 1; if (obj.retryTimer == null) { obj.retryTimer = setTimeout(connect, getConnectRetryTime()); } }
173 + }
174 +
175 + // Get the next retry time in milliseconds
176 + function getConnectRetryTime() {
177 + if (obj.retryBackoff < 30000) { obj.retryBackoff += Math.floor((Math.random() * 3000) + 1000); }
178 + return obj.retryBackoff;
179 + }
180 +
181 + // Send a JSON message to the peer server
182 + obj.send = function (msg) {
183 + try {
184 + if (obj.ws == null || obj.conn == null || obj.connectionState != 15) { return; }
185 + if (typeof msg == 'object') { obj.conn.send(JSON.stringify(msg)); return; }
186 + if (typeof msg == 'string') { obj.conn.send(msg); return; }
187 + } catch (e) { }
188 + }
189 +
190 + // Process incoming peer server JSON data
191 + function processServerData(msg) {
192 + var str = msg.toString('utf8');
193 + if (str[0] == '{') {
194 + try { command = JSON.parse(str) } catch (e) { obj.parent.parent.debug(1, 'Unable to parse JSON (' + obj.remoteaddr + ').'); return; } // If the command can't be parsed, ignore it.
195 + if (command.action == 'info') {
196 + if (obj.authenticated != 3) {
197 + // We get the peer's serverid and database identifier.
198 + if ((command.serverid != null) && (command.dbid != null)) {
199 + if (command.serverid == obj.parent.peerConfig.serverId) { console.log('ERROR: Same server ID, trying to peer with self. (' + obj.url + ', ' + command.serverid + ').'); return; }
200 + if (command.dbid != obj.parent.parent.db.identifier) { console.log('ERROR: Database ID mismatch. Trying to peer to a server with the wrong database. (' + obj.url + ', ' + command.serverid + ').'); return; }
201 + obj.peerServerId = command.serverid;
202 + obj.peerServerKey = command.key;
203 + obj.authenticated = 3;
204 + obj.parent.SetupPeerServer(obj, obj.peerServerId);
205 + }
206 + }
207 + } else if (obj.authenticated == 3) {
208 + // Pass the message to the parent object for processing.
209 + obj.parent.ProcessPeerServerMessage(obj, obj.peerServerId, command);
210 + }
211 + }
212 + }
213 +
214 + connect();
215 + return obj;
216 + }
217 +
218 + // Create a mesh server module that received a connection to another server
219 + obj.CreatePeerInServer = function (parent, ws, req) {
220 + var obj = {};
221 + obj.ws = ws;
222 + obj.parent = parent;
223 + obj.common = require('./common.js');
224 + obj.forge = require('node-forge');
225 + obj.crypto = require('crypto');
226 + obj.authenticated = 0;
227 + obj.remoteaddr = obj.ws._socket.remoteAddress;
228 + obj.receivedCommands = 0;
229 + obj.webCertificatHash = obj.parent.parent.webserver.webCertificatHash;
230 + obj.agentCertificatHashHex = obj.parent.parent.webserver.agentCertificatHashHex;
231 + obj.agentCertificatAsn1 = obj.parent.parent.webserver.agentCertificatAsn1;
232 + obj.infoSent = 0;
233 + obj.peerServerId = null;
234 + if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); }
235 +
236 + // Send a message to the peer server
237 + obj.send = function (data) {
238 + try {
239 + if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); return; }
240 + if (typeof data == 'object') { obj.ws.send(JSON.stringify(data)); return; }
241 + obj.ws.send(data);
242 + } catch (e) { }
243 + }
244 +
245 + // Disconnect this server
246 + obj.close = function (arg) {
247 + if ((arg == 1) || (arg == null)) { try { obj.ws.close(); obj.parent.parent.debug(1, 'InPeer: Soft disconnect ' + obj.peerServerId + ' (' + obj.remoteaddr + ')'); } catch (e) { console.log(e); } } // Soft close, close the websocket
248 + if (arg == 2) { try { obj.ws._socket._parent.end(); obj.parent.parent.debug(1, 'InPeer: Hard disconnect ' + obj.peerServerId + ' (' + obj.remoteaddr + ')'); } catch (e) { console.log(e); } } // Hard close, close the TCP socket
249 + if (obj.authenticated == 3) { obj.parent.ClearPeerServer(obj, obj.peerServerId); obj.authenticated = 0; }
250 + }
251 +
252 + // When data is received from the mesh agent web socket
253 + ws.on('message', function (msg) {
254 + if (msg.type == 'binary') { var msg2 = ""; for (var i = 0; i < msg.binaryData.length; i++) { msg2 += String.fromCharCode(msg.binaryData[i]); } msg = msg2; }
255 + else if (msg.type == 'utf8') { msg = msg.utf8Data; }
256 + if (msg.length < 2) return;
257 +
258 + if (obj.authenticated >= 2) { // We are authenticated
259 + if (msg.charCodeAt(0) == 123) { processServerData(msg); }
260 + if (msg.length < 2) return;
261 + var cmdid = obj.common.ReadShort(msg, 0);
262 + // Process binary commands (if any). None right now.
263 + }
264 + else if (obj.authenticated < 2) { // We are not authenticated
265 + var cmd = obj.common.ReadShort(msg, 0);
266 + if (cmd == 1) {
267 + // Agent authentication request
268 + if ((msg.length != 66) || ((obj.receivedCommands & 1) != 0)) return;
269 + obj.receivedCommands += 1; // Agent can't send the same command twice on the same connection ever. Block DOS attack path.
270 +
271 + // Check that the server hash matches out own web certificate hash
272 + if (obj.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; }
273 +
274 + // Use our server private key to sign the ServerHash + AgentNonce + ServerNonce
275 + var privateKey = obj.forge.pki.privateKeyFromPem(obj.parent.parent.certificates.agent.key);
276 + var md = obj.forge.md.sha256.create();
277 + md.update(msg.substring(2), 'binary');
278 + md.update(obj.nonce, 'binary');
279 + obj.agentnonce = msg.substring(34);
280 +
281 + // Send back our certificate + signature
282 + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(obj.agentCertificatAsn1.length) + obj.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature
283 +
284 + // Check the agent signature if we can
285 + if (obj.unauthsign != undefined) {
286 + if (processAgentSignature(obj.unauthsign) == false) { disconnect(); return; } else { completePeerServerConnection(); }
287 + }
288 + }
289 + else if (cmd == 2) {
290 + // Agent certificate
291 + if ((msg.length < 4) || ((obj.receivedCommands & 2) != 0)) return;
292 + obj.receivedCommands += 2; // Agent can't send the same command twice on the same connection ever. Block DOS attack path.
293 +
294 + // Decode the certificate
295 + var certlen = obj.common.ReadShort(msg, 2);
296 + obj.unauth = {};
297 + obj.unauth.nodeCert = null;
298 + try { obj.unauth.nodeCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(msg.substring(4, 4 + certlen))); } catch (e) { return; }
299 + obj.unauth.nodeid = obj.forge.pki.getPublicKeyFingerprint(obj.unauth.nodeCert.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() });
300 +
301 + // Check the agent signature if we can
302 + if (obj.agentnonce == undefined) { obj.unauthsign = msg.substring(4 + certlen); } else { if (processAgentSignature(msg.substring(4 + certlen)) == false) { disconnect(); return; } }
303 + completePeerServerConnection();
304 + }
305 + else if (cmd == 3) {
306 + // Agent meshid
307 + if ((msg.length < 56) || ((obj.receivedCommands & 4) != 0)) return;
308 + obj.receivedCommands += 4; // Agent can't send the same command twice on the same connection ever. Block DOS attack path.
309 + completePeerServerConnection();
310 + }
311 + }
312 + });
313 +
314 + // If error, do nothing
315 + ws.on('error', function (err) { obj.parent.parent.debug(1, 'InPeer: Connection Error: ' + err); });
316 +
317 + // If the mesh agent web socket is closed, clean up.
318 + ws.on('close', function (req) { obj.parent.parent.debug(1, 'InPeer disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); obj.close(0); });
319 + // obj.ws._socket._parent.on('close', function (req) { obj.parent.parent.debug(1, 'Agent TCP disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); });
320 +
321 + // Start authenticate the mesh agent by sending a auth nonce & server TLS cert hash.
322 + // Send 256 bits SHA256 hash of TLS cert public key + 256 bits nonce
323 + obj.nonce = obj.forge.random.getBytesSync(32);
324 + obj.send(obj.common.ShortToStr(1) + obj.webCertificatHash + obj.nonce); // Command 1, hash + nonce
325 +
326 + // Once we get all the information about an agent, run this to hook everything up to the server
327 + function completePeerServerConnection() {
328 + if (obj.authenticated != 1) return;
329 + obj.send(obj.common.ShortToStr(4));
330 + obj.send(JSON.stringify({ action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.parent.db.identifier, key: obj.parent.serverKey }));
331 + obj.authenticated = 2;
332 + }
333 +
334 + // Verify the agent signature
335 + function processAgentSignature(msg) {
336 + var md = obj.forge.md.sha256.create(); // TODO: Switch this to SHA256 on node instead of forge.
337 + md.update(obj.parent.parent.webserver.webCertificatHash, 'binary');
338 + md.update(obj.nonce, 'binary');
339 + md.update(obj.agentnonce, 'binary');
340 + if (obj.unauth.nodeCert.publicKey.verify(md.digest().bytes(), msg) == false) { return false; }
341 + if (obj.unauth.nodeid !== obj.agentCertificatHashHex) { return false; }
342 +
343 + // Connection is a success, clean up
344 + obj.nodeid = obj.unauth.nodeid.toUpperCase();
345 + delete obj.nonce;
346 + delete obj.agentnonce;
347 + delete obj.unauth;
348 + if (obj.unauthsign) delete obj.unauthsign;
349 + obj.authenticated = 1;
350 + return true;
351 + }
352 +
353 + // Process incoming peer server JSON data
354 + function processServerData(msg) {
355 + var str = msg.toString('utf8');
356 + if (str[0] == '{') {
357 + try { command = JSON.parse(str) } catch (e) { obj.parent.parent.debug(1, 'Unable to parse JSON (' + obj.remoteaddr + ').'); return; } // If the command can't be parsed, ignore it.
358 + if (command.action == 'info') {
359 + if (obj.authenticated != 3) {
360 + // We get the peer's serverid and database identifier.
361 + if ((command.serverid != null) && (command.dbid != null)) {
362 + if (command.serverid == obj.parent.peerConfig.serverId) { console.log('ERROR: Same server ID, trying to peer with self. (' + obj.remoteaddr + ', ' + command.serverid + ').'); return; }
363 + if (command.dbid != obj.parent.parent.db.identifier) { console.log('ERROR: Database ID mismatch. Trying to peer to a server with the wrong database. (' + obj.remoteaddr + ', ' + command.serverid + ').'); return; }
364 + if (obj.parent.peerConfig.servers[command.serverid] == null) { console.log('ERROR: Unknown peer serverid: ' + command.serverid + ' (' + obj.remoteaddr + ').'); return; }
365 + obj.peerServerId = command.serverid;
366 + obj.peerServerKey = command.key;
367 + obj.authenticated = 3;
368 + obj.parent.SetupPeerServer(obj, obj.peerServerId);
369 + }
370 + }
371 + } else if (obj.authenticated == 3) {
372 + // Pass the message to the parent object for processing.
373 + obj.parent.ProcessPeerServerMessage(obj, obj.peerServerId, command);
374 + }
375 + }
376 + }
377 +
378 + return obj;
379 + }
380 +
381 + // If we have no peering configuration, don't setup this object
382 + if (obj.peerConfig == null) { return null; }
383
384 // Generate a cryptographic key used to encode and decode cookies
385 obj.generateCookieKey = function () {
15 - return new Buffer(obj.crypto.randomBytes(32), 'binary').toString('ascii');
386 + return new Buffer(obj.crypto.randomBytes(32), 'binary').toString('hex');
387 }
388
389 // Encode an object as a cookie using a key
@@ -56,29 +427,67 @@ module.exports.CreateMultiServer = function (parent, args) {
427
428 // Dispatch an event to other MeshCentral2 peer servers
429 obj.DispatchEvent = function (ids, source, event) {
59 - // TODO
430 + var busmsg = JSON.stringify({ action: 'bus', ids: ids, event: event });
431 + for (var serverid in obj.peerServers) { obj.peerServers[serverid].send(busmsg); }
432 }
433
62 - // Handle websocket requests on "/meshserver.ashx" from other MeshCentral2 peer servers.
63 - obj.handleServerWebSocket = function (ws, req) {
64 - Debug(1, 'MeshServer connection open.');
434 + // Dispatch a message to other MeshCentral2 peer servers
435 + obj.DispatchMessage = function (msg) {
436 + for (var serverid in obj.peerServers) { obj.peerServers[serverid].send(msg); }
437 + }
438
66 - // Handle data from another mesh server
67 - ws.on('message', function (msg) {
68 - Debug(1, 'MeshServer data of length ' + msg.length);
69 - // TODO
70 - });
439 + // Attempt to connect to all peers
440 + obj.ConnectToPeers = function () {
441 + for (serverId in obj.peerConfig.servers) {
442 + // We will only connect to names that are larger then ours. This way, eveyone has one connection to everyone else (no cross-connections).
443 + if ((serverId > obj.peerConfig.serverId) && (obj.peerConfig.servers[serverId].url != null) && (obj.outPeerServers[serverId] == null)) {
444 + obj.outPeerServers[serverId] = obj.CreatePeerOutServer(obj, serverId, obj.peerConfig.servers[serverId].url);
445 + }
446 + }
447 + }
448
72 - // If error, do nothing
73 - ws.on('error', function (err) { console.log(err); });
449 + // We connected to a peer server, setup everything
450 + obj.SetupPeerServer = function (server, peerServerId) {
451 + console.log('Connected to peer server ' + peerServerId + '.');
452 + obj.peerServers[peerServerId] = server;
453 + server.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.peerConnectivityByNode[obj.parent.serverId] }));
454 + }
455
75 - // Another mesh server connection has closed
76 - ws.on('close', function (req) {
77 - Debug(1, 'MeshServer connection closed.');
78 - // TODO
79 - });
456 + // We disconnected to a peer server, clean up everything
457 + obj.ClearPeerServer = function (server, peerServerId) {
458 + console.log('Disconnected from peer server ' + peerServerId + '.');
459 + delete obj.peerServers[peerServerId];
460 + //delete obj.parent.peerConnectivityByMesh[peerServerId]; // TODO: We will need to re-adjust all of the node power states.
461 + var oldList = obj.parent.peerConnectivityByNode[peerServerId];
462 + obj.parent.peerConnectivityByNode[peerServerId] = {};
463 + obj.parent.UpdateConnectivityState(oldList);
464 + }
465 +
466 + // Process a message coming from a peer server
467 + obj.ProcessPeerServerMessage = function (server, peerServerId, msg) {
468 + //console.log('ProcessPeerServerMessage', peerServerId, msg.action, typeof msg, msg);
469 + switch (msg.action) {
470 + case 'bus': {
471 + obj.parent.DispatchEvent(msg.ids, null, msg.event, true); // Dispatch the peer event
472 + break;
473 + }
474 + case 'connectivityTable': {
475 + obj.parent.peerConnectivityByNode[peerServerId] = msg.connectivityTable;
476 + obj.parent.UpdateConnectivityState(msg.connectivityTable);
477 + break;
478 + }
479 + case 'SetConnectivityState': {
480 + obj.parent.SetConnectivityState(msg.meshid, msg.nodeid, msg.connectTime, msg.connectType, msg.powerState, peerServerId);
481 + break;
482 + }
483 + case 'ClearConnectivityState': {
484 + obj.parent.ClearConnectivityState(msg.meshid, msg.nodeid, msg.connectType, peerServerId);
485 + break;
486 + }
487 + }
488 }
489
490 obj.serverKey = obj.generateCookieKey();
491 + setTimeout(function () { obj.ConnectToPeers(); }, 1000); // Delay this a little to make sure we are ready on our side.
492 return obj;
493 }
package.json
+3 -2
@@ -1,6 +1,6 @@
1 {
2 "name": "meshcentral",
3 - "version": "0.0.7-p",
3 + "version": "0.0.7-u",
4 "keywords": [
5 "Remote Management",
6 "Intel AMT",
@@ -25,7 +25,6 @@
25 "bin"
26 ],
27 "dependencies": {
28 - "meshcentral": "*",
28 "archiver": "^1.3.0",
29 "body-parser": "^1.17.1",
30 "compression": "^1.6.2",
@@ -34,11 +33,13 @@
33 "express-handlebars": "^3.0.0",
34 "express-session": "^1.15.1",
35 "express-ws": "^2.0.0",
36 + "meshcentral": "*",
37 "minimist": "^1.2.0",
38 "multiparty": "^4.1.3",
39 "nedb": "^1.8.0",
40 "node-forge": "^0.6.49",
41 "unzip": "^0.1.11",
42 + "websocket": "^1.0.24",
43 "xmldom": "^0.1.27"
44 },
45 "optionalDependencies": {
public/commander.htm
+33 -20
@@ -340,13 +340,13 @@ th {
340 <div id="storagelinks" style="margin-top:4px"></div>
341 </div>
342 <div id="id_mainarea" class="maincell">
343 - <div id="id_scriptstatus" style="height:21px;background:#8fac8d;padding:5px;margin-bottom:1px;display:none">
343 + <div id="id_scriptstatus" style="height:21px;background:#8fac8d;padding:5px;margin-bottom:1px;display:none;overflow:hidden">
344 <div style="float:right"><input type="button" value="Stop Script" onclick="script_Stop()"></div>
345 - <div style="font-size:16px;padding-top:2px">&nbsp;<b>Running Script</b><span id="id_scriptstatusstr"></span></div>
345 + <div style="font-size:16px;padding-top:2px;overflow:hidden">&nbsp;<b>Running Script</b><span style="overflow:hidden" id="id_scriptstatusstr"></span></div>
346 </div>
347 <div id="id_versionWarning" style="height:21px;background:#8fac8d;padding:5px;margin-bottom:1px;display:none">
348 <div style="font-size:16px;float:right;cursor:pointer;padding-right:5px;padding-left:5px;padding-top:2px" onclick="QV('id_versionWarning', false)"><b>X</b></div>
349 - <div style="font-size:14px;padding-top:2px">&nbsp;<b>This computer's firmware should be updated, <a style="cursor:pointer" onclick="require('nw.gui').Shell.openExternal('https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr')"><u>please check here</u></a>.</b><span id="id_scriptstatusstr"></span></div>
349 + <div style="font-size:14px;padding-top:2px">&nbsp;<b>This computer's firmware should be updated, <a style="cursor:pointer" onclick="require('nw.gui').Shell.openExternal('https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr')"><u>please check here</u></a>.</b></div>
350 </div>
351 <div id="id_mainarea_frame" style="width:100%;height:100%">
352 <iframe id="id_StorageIFrame" style="width:100%;height:100%;border:0"></iframe>
@@ -2103,7 +2103,9 @@ function AmtStackCreateService(wsmanStack) {
2103 e = null;
2104 try {
2105 // NodeJS detection
2106 - } catch (ex) { }
2106 +
2107 + e = window.atob(ra[i]);
2108 + } catch (ex) { }
2109 if (e != null) {
2110 TimeStamp = ReadIntX(e, 0);
2111 if ((TimeStamp > 0) && (TimeStamp < 0xFFFFFFFF)) {
@@ -35687,13 +35689,9 @@ if (typeof module !== "undefined" && module.exports) {
35689 }
35690
35691 function editEnvironmentDetectionDlg2(stack, name, response, status) {
35690 - if (status != 200) {
35691 - messagebox('Environment Detection', 'Failed to add server, status ' + status);
35692 - } else if (response.Body["ReturnValue"] != 0) {
35693 - messagebox('Environment Detection', response.Body.ReturnValueStr.replace(/_/g, ' '));
35694 - } else {
35695 - PullRemoteAccess();
35696 - }
35692 + if (status != 200) { messagebox('Environment Detection', 'Failed to add server, status ' + status); }
35693 + else if ((response.Body["ReturnValue"]) && (response.Body["ReturnValue"] != 0)) { messagebox('Environment Detection', response.Body.ReturnValueStr.replace(/_/g, ' ')); }
35694 + else { PullRemoteAccess(); }
35695 }
35696
35697 function edInputChg() {
@@ -36134,7 +36132,8 @@ if (typeof module !== "undefined" && module.exports) {
36132 addOption('d5actionSelect', 'Power down', 8);
36133 addOption('d5actionSelect', 'Reset', 10);
36134 if (amtPowerBootCapabilities["ForceDiagnosticBoot"] == true) {
36137 - addOption('d5actionSelect', 'Diagnostic', 11);
36135 + addOption('d5actionSelect', 'Power on to diagnostic', 300);
36136 + addOption('d5actionSelect', 'Reset to diagnostic', 301);
36137 }
36138 if (amtversion > 9) {
36139 addOption('d5actionSelect', 'Soft-off', 12);
@@ -36267,7 +36266,7 @@ if (typeof module !== "undefined" && module.exports) {
36266 consentChanged();
36267 return;
36268 }
36270 - // console.log("Opt-in Required.", response.Body["OptInRequired"]);
36269 + //console.log("Opt-in Required.", response.Body["OptInRequired"]);
36270 statusbox("Power Action", "Starting opt-in...");
36271 amtstack.IPS_OptInService_StartOptIn(powerActionResponseC1, 0, 1);
36272 } else {
@@ -36366,8 +36365,8 @@ if (typeof module !== "undefined" && module.exports) {
36365 r["LockResetButton"] = false;
36366 r["LockSleepButton"] = false;
36367 r["ReflashBIOS"] = false;
36369 - r["UseIDER"] = (action > 199);
36370 - r["UseSOL"] = ((currentView == 13) && (action != 8)); // If we are looking at the terminal, turn on SOL.
36368 + r["UseIDER"] = ((action > 199) && (action < 300));
36369 + r["UseSOL"] = ((currentView == 13) && (action != 8) && (action != 300) && (action != 301)); // If we are looking at the terminal, turn on SOL. SOL can't be used with diagnostic mode (300/301)
36370 r["UseSafeMode"] = false;
36371 r["UserPasswordBypass"] = false;
36372 if (r["SecureErase"]) { r["SecureErase"] = ((action == 104) && (amtPowerBootCapabilities["SecureErase"] == true)); }
@@ -36386,7 +36385,15 @@ if (typeof module !== "undefined" && module.exports) {
36385 //if (errcheck(status, stack)) return;
36386 //console.log("Setup next boot...");
36387 statusbox("Power Action", "Setting next boot...");
36389 - amtstack.SetBootConfigRole(1, powerActionResponse3, 0, 1);
36388 + amtstack.SetBootConfigRole(1, powerActionResponse3x, 0, 1);
36389 + }
36390 +
36391 + function powerActionResponse3x(stack, name, response, status) {
36392 + //console.log("powerActionResponse3x(" + name + "," + response + "," + status + ")");
36393 + var action = d5actionSelect.value;
36394 + var bootSource = null;
36395 + if (action == 300 || action == 301) { bootSource = '<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootSourceSetting</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="InstanceID">Intel(r) AMT: Force Diagnostic Boot</Selector></SelectorSet></ReferenceParameters>'; }
36396 + amtstack.CIM_BootConfigSetting_ChangeBootOrder(bootSource, powerActionResponse3);
36397 }
36398
36399 var targetPowerAction = 0;
@@ -36396,12 +36403,14 @@ if (typeof module !== "undefined" && module.exports) {
36403 //console.log("Performing Power State Change...");
36404 statusbox("Power Action", "Performing power action...");
36405 var action = d5actionSelect.value;
36399 - if (action == 100 || action == 201 || action == 203) action = 2; // Power up
36400 - if (action == 101 || action == 200 || action == 202) action = 10; // Reset
36406 + if (action == 100 || action == 201 || action == 203 || action == 300) action = 2; // Power up
36407 + if (action == 101 || action == 200 || action == 202 || action == 301) action = 10; // Reset
36408 if (action == 104) action = 10; // Reset with Remote Secure Erase
36409
36410 if (action == 999) action = AvdPowerDlg.Action;
36411 targetPowerAction = action;
36412 + //console.log('RequestPowerStateChange:' + action);
36413 + if (action == 11) { action = 10; }
36414 if (action < 999) { amtstack.RequestPowerStateChange(action, powerActionResponse4); } else { messagebox("Power Action", "Next boot action set."); }
36415 }
36416
@@ -36910,6 +36919,9 @@ if (typeof module !== "undefined" && module.exports) {
36919
36920 // Called by a running script to update the console. The last message in the console is displayed in the top green bar.
36921 function script_console(msg) {
36922 + if (msg.indexOf("INFO: ") == 0) { msg = msg.substring(6); }
36923 + if (msg.indexOf("SUCCESS: ") == 0) { msg = msg.substring(9); }
36924 + if (msg.indexOf("ERROR: ") == 0) { msg = msg.substring(7); }
36925 QH('id_scriptstatusstr', ', ' + msg);
36926 }
36927
@@ -37062,7 +37074,8 @@ if (typeof module !== "undefined" && module.exports) {
37074 function script_fonkeypress(e) {
37075 if (xxdialogMode) return;
37076 if (e.key == 'Delete' && script_BlockScriptSelectedId != null) {
37065 - delete script_BlockScript[script_BlockScriptSelectedId];
37077 + //delete script_BlockScript[script_BlockScriptSelectedId];
37078 + script_BlockScript.splice(script_BlockScriptSelectedId, 1);
37079 script_BlockScriptSelectedId = null;
37080 fupdatescript();
37081 }
@@ -37182,7 +37195,7 @@ if (typeof module !== "undefined" && module.exports) {
37195 if (xxdialogMode) return;
37196 if (button == 2) {
37197 // Delete this block
37185 - delete script_BlockScript[tag];
37198 + script_BlockScript.splice(tag, 1);
37199 if (script_BlockScriptSelectedId == tag) { script_BlockScriptSelectedId = null; }
37200 } else {
37201 // Change this block with new arguments
views/login.handlebars
+3 -2
@@ -158,6 +158,7 @@
158 }
159
160 function go(x) {
161 + setDialogMode(0);
162 QV("showPassHintLink", false);
163 QV('loginpanel', x == 1);
164 QV('createpanel', x == 2);
@@ -166,11 +167,11 @@
167 function validateLogin() {
168 var ok = (Q('username').value.length > 0 && Q('password').value.length > 0);
169 QE('loginButton', ok);
169 - QV("showPassHintLink", false);
170 + setDialogMode(0);
171 }
172
173 function validateCreate() {
173 - QV("showPassHintLink", false);
174 + setDialogMode(0);
175 var ok = (Q('ausername').value.length > 0 && Q('aemail').value.length > 0 && Q('apassword1').value.length > 0 && Q('apassword2').value == Q('apassword1').value);
176 QE('createButton', ok);
177 if (Q('apassword1').value == '') {
webserver.js
+5 -5
@@ -625,7 +625,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
625 if ((meshlinks.rights & 8) == 0) { console.log('ERR: Access denied (2)'); return; }
626
627 // Check what connectivity is available for this node
628 - var state = parent.connectivityByNode[req.query.host];
628 + var state = parent.GetConnectivityState(req.query.host);
629 var conn = 0;
630 if (!state || state.connectivity == 0) {
631 conn = 4; // DEBUG: Allow local connections for now... change this later when we can monitor Intel AMT machines and confirm routing before connections.
@@ -958,7 +958,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
958 var r = {};
959 for (var i in docs) {
960 // Add the connection state
961 - var state = parent.connectivityByNode[docs[i]._id];
961 + var state = parent.GetConnectivityState(docs[i]._id);
962 if (state) {
963 docs[i].conn = state.connectivity;
964 docs[i].pwr = state.powerState;
@@ -1017,7 +1017,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
1017 ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: timeline }));
1018 } else {
1019 // No records found, send current state if we have it
1020 - var state = obj.parent.connectivityByNode[command.nodeid];
1020 + var state = obj.parent.GetConnectivityState(command.nodeid);
1021 if (state != undefined) { ws.send(JSON.stringify({ action: 'powertimeline', nodeid: command.nodeid, timeline: [state.powerState, Date.now(), state.powerState] })); }
1022 }
1023 });
@@ -1400,7 +1400,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
1400 obj.parent.DispatchEvent(['*', node.meshid], obj, { etype: 'node', username: user.name, action: 'removenode', nodeid: node._id, msg: change, domain: domain.id })
1401
1402 // Disconnect all connections if needed
1403 - var state = obj.parent.connectivityByNode[command.nodeid];
1403 + var state = obj.parent.GetConnectivityState(command.nodeid);
1404 if ((state != undefined) && (state.connectivity != undefined)) {
1405 if ((state.connectivity & 1) != 0) { obj.wsagents[command.nodeid].close(); } // Disconnect mesh agent
1406 if ((state.connectivity & 2) != 0) { obj.parent.mpsserver.close(obj.parent.mpsserver.ciraConnections[command.nodeid]); } // Disconnect CIRA connection
@@ -1895,7 +1895,7 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
1895 // Setup all HTTP handlers
1896 obj.app.get('/backup.zip', handleBackupRequest);
1897 obj.app.post('/restoreserver.ashx', handleRestoreRequest);
1898 - if (parent.multiServer != null) { obj.app.ws('/meshserver.ashx', parent.multiServer.handleServerWebSocket); }
1898 + if (parent.multiServer != null) { obj.app.ws('/meshserver.ashx', function (ws, req) { parent.multiServer.CreatePeerInServer(parent.multiServer, ws, req); } ); }
1899 for (var i in parent.config.domains) {
1900 var url = parent.config.domains[i].url;
1901 obj.app.get(url, handleRootRequest);