diff --git a/agents/meshcore.js b/agents/meshcore.js index e59fae51..9e04ef37 100644 --- a/agents/meshcore.js +++ b/agents/meshcore.js @@ -776,6 +776,12 @@ function createMeshCore(agent) { } break; } + case 'location': { + getIpLocationData(function (location) { + sendConsoleText(objToString({ "action": "iplocation", "type": "publicip", "value": location }, 0, '.')); + }); + break; + } default: { // This is an unknown command, return an error message response = 'Unknown command \"' + cmd + '\", type \"help\" for list of avaialble commands.'; break; diff --git a/db.js b/db.js index 1f6ae329..7138e83a 100644 --- a/db.js +++ b/db.js @@ -18,6 +18,8 @@ module.exports.CreateDB = function (args, datapath) { var obj = {}; obj.path = require('path'); + obj.identifier = null; + if (args.mongodb) { // Use MongoDB obj.databaseType = 2; @@ -35,6 +37,17 @@ module.exports.CreateDB = function (args, datapath) { } obj.SetupDatabase = function (func) { + // Check if the database unique identifier is present + // This is used to check that in server peering mode, everyone is using the same database. + obj.Get('DatabaseIdentifier', function (err, docs) { + if ((docs.length == 1) && (docs[0].value != null)) { + obj.identifier = docs[0].value; + } else { + obj.identifier = new Buffer(require('crypto').randomBytes(32), 'binary').toString('hex'); + obj.Set({ _id: 'DatabaseIdentifier', value: obj.identifier }); + } + }); + // Load database schema version and check if we need to update obj.Get('SchemaVersion', function (err, docs) { var ver = 0; diff --git a/meshagent.js b/meshagent.js index 936fbba3..fe1cb97b 100644 --- a/meshagent.js +++ b/meshagent.js @@ -30,7 +30,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); } // Send a message to the mesh agent - obj.send = function (data) { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } } + obj.send = function (data) { try { if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); } else { obj.ws.send(data); } } catch (e) { } } // Disconnect this agent obj.close = function (arg) { @@ -92,7 +92,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { if (err) { return console.error(err); } obj.agentUpdate = { oldHash: agenthash, ptr: 0, buf: new Buffer(agentUpdateBlockSize + 4), fd: fd }; - // 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 + // 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 //console.log("Agent update file open."); obj.send(obj.common.ShortToStr(13) + obj.common.ShortToStr(0)); // Command 13, start mesh agent download diff --git a/meshcentral.js b/meshcentral.js index 1d1f7f6c..da3c7424 100644 --- a/meshcentral.js +++ b/meshcentral.js @@ -21,8 +21,8 @@ function CreateMeshCentralServer() { obj.args = require('minimist')(process.argv.slice(2)); obj.common = require('./common.js'); obj.certificates = null; - obj.connectivityByMesh = {}; // This object keeps a list of all connected CIRA and agents, by meshid->nodeid->value (value: 1 = Agent, 2 = CIRA, 4 = AmtDirect) obj.connectivityByNode = {}; // This object keeps a list of all connected CIRA and agents, by nodeid->value (value: 1 = Agent, 2 = CIRA, 4 = AmtDirect) + 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) obj.debugLevel = 0; obj.config = {}; // Configuration file obj.dbconfig = {}; // Persistance values, loaded from database @@ -36,6 +36,7 @@ function CreateMeshCentralServer() { obj.multiServer = null; obj.currentVer = null; obj.maintenanceTimer = null; + obj.serverId = null; // Create data and files folders if needed try { obj.fs.mkdirSync(obj.datapath); } catch (e) { } @@ -136,6 +137,7 @@ function CreateMeshCentralServer() { } else { if (error != null) { // This is an un-expected restart + console.log(error); console.log('ERROR: MeshCentral failed with critical error, check MeshErrors.txt. Restarting...'); setTimeout(function () { obj.launchChildServer(startLine); }, 1000); } @@ -289,6 +291,10 @@ function CreateMeshCentralServer() { require('crypto').randomBytes(32, function (err, buf) { // Setup Mesh Multi-Server if needed obj.multiServer = require('./multiserver.js').CreateMultiServer(obj, obj.args); + if (obj.multiServer != null) { + obj.serverId = obj.config.peers.serverId; + for (var serverid in obj.config.peers.servers) { obj.peerConnectivityByNode[serverid] = {}; } + } if (obj.args.secret) { // This secret is used to encrypt HTTP session information, if specified, user it. @@ -414,10 +420,54 @@ function CreateMeshCentralServer() { } } } - if ((fromPeerServer == undefined) && (obj.multiServer != null)) { obj.multiServer.DispatchEvent(ids, source, event); } + if ((fromPeerServer == undefined) && (obj.multiServer != null) && (event.nopeers != 1)) { obj.multiServer.DispatchEvent(ids, source, event); } delete targets; } + // Get the connection state of a node + obj.GetConnectivityState = function (nodeid) { return obj.connectivityByNode[nodeid]; } + + // Update the connection state of a node when in multi-server mode + // Update obj.connectivityByNode using obj.peerConnectivityByNode for the list of nodes in argument + obj.UpdateConnectivityState = function (nodeids) { + for (var nodeid in nodeids) { + var meshid = null, state = null, oldConnectivity = 0, oldPowerState = 0, newConnectivity = 0, newPowerState = 0; + var oldState = obj.connectivityByNode[nodeid]; + if (oldState != null) { meshid = oldState.meshid; oldConnectivity = oldState.connectivity; oldPowerState = oldState.powerState; } + for (serverid in obj.peerConnectivityByNode) { + var peerState = obj.peerConnectivityByNode[serverid][nodeid]; + if (peerState != null) { + if (state == null) { + // Copy the state + state = {}; + newConnectivity = state.connectivity = peerState.connectivity; + newPowerState = state.powerState = peerState.powerState; + meshid = state.meshid = peerState.meshid; + //if (peerState.agentPower) { state.agentPower = peerState.agentPower; } + //if (peerState.ciraPower) { state.ciraPower = peerState.ciraPower; } + //if (peerState.amtPower) { state.amtPower = peerState.amtPower; } + } else { + // Merge the state + state.connectivity |= peerState.connectivity; + newConnectivity = state.connectivity; + if ((peerState.powerState != 0) && ((state.powerState == 0) || (peerState.powerState < state.powerState))) { newPowerState = state.powerState = peerState.powerState; } + meshid = state.meshid = peerState.meshid; + //if (peerState.agentPower) { state.agentPower = peerState.agentPower; } + //if (peerState.ciraPower) { state.ciraPower = peerState.ciraPower; } + //if (peerState.amtPower) { state.amtPower = peerState.amtPower; } + } + } + } + obj.connectivityByNode[nodeid] = state; + + //console.log('xx', nodeid, meshid, newConnectivity, oldPowerState, newPowerState, oldPowerState); + + // Event any changes on this server only + if ((newConnectivity != oldPowerState) || (newPowerState != oldPowerState)) { + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newConnectivity, pwr: newPowerState, nolog: 1, nopeers: 1 }); + } + } + } // Set the connectivity state of a node and setup the server so that messages can be routed correctly. // meshId: mesh identifier of format mesh/domain/meshidhex @@ -427,79 +477,132 @@ function CreateMeshCentralServer() { // 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 var connectTypeStrings = ['', 'MeshAgent', 'Intel AMT CIRA', '', 'Intel AMT local']; var powerStateStrings = ['Unknown', 'Powered', 'Sleep', 'Sleep', 'Deep Sleep', 'Hibernating', 'Soft-Off', 'Present']; - obj.SetConnectivityState = function (meshid, nodeid, connectTime, connectType, powerState) { - //console.log('SetConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + ', Power: ' + powerStateStrings[powerState]); + obj.SetConnectivityState = function (meshid, nodeid, connectTime, connectType, powerState, serverid) { + //console.log('SetConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + ', Power: ' + powerStateStrings[powerState] + (serverid == null ? ('') : (', ServerId: ' + serverid))); + if ((serverid == null) && (obj.multiServer != null)) { obj.multiServer.DispatchMessage({ action: 'SetConnectivityState', meshid: meshid, nodeid: nodeid, connectTime: connectTime, connectType: connectType, powerState: powerState }); } - // Change the node connection state - var eventConnectChange = 0; - var state = obj.connectivityByNode[nodeid]; - if (state) { - // Change the connection in the node and mesh state lists - if ((state.connectivity & connectType) == 0) { - state.connectivity |= connectType; + if (obj.multiServer == null) { + // Single server mode + + // Change the node connection state + var eventConnectChange = 0; + var state = obj.connectivityByNode[nodeid]; + if (state) { + // Change the connection in the node and mesh state lists + if ((state.connectivity & connectType) == 0) { state.connectivity |= connectType; eventConnectChange = 1; } + state.meshid = meshid; + } else { + // Add the connection to the node and mesh state list + obj.connectivityByNode[nodeid] = state = { connectivity: connectType, meshid: meshid }; eventConnectChange = 1; } + + // Set node power state + if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; } + var powerState = 0, oldPowerState = state.powerState; + 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; } + if ((state.powerState == undefined) || (state.powerState != powerState)) { + state.powerState = powerState; + eventConnectChange = 1; + + // Set new power state in database + obj.db.file.insert({ type: 'power', time: connectTime, node: nodeid, power: powerState, oldPower: oldPowerState }); + } + + // Event the node connection change + 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 }); } } else { - // Add the connection to the node and mesh state list - obj.connectivityByNode[nodeid] = state = { connectivity: connectType }; - if (!obj.connectivityByMesh[meshid]) { obj.connectivityByMesh[meshid] = {}; } - obj.connectivityByMesh[meshid][nodeid] = state; - eventConnectChange = 1; + // Multi server mode + + // Change the node connection state + if (serverid == null) { serverid = obj.serverId; } + if (obj.peerConnectivityByNode[serverid] == null) return; // Guard against unknown serverid's + var state = obj.peerConnectivityByNode[serverid][nodeid]; + if (state) { + // Change the connection in the node and mesh state lists + if ((state.connectivity & connectType) == 0) { state.connectivity |= connectType; } + state.meshid = meshid; + } else { + // Add the connection to the node and mesh state list + obj.peerConnectivityByNode[serverid][nodeid] = state = { connectivity: connectType, meshid: meshid }; + } + + // Set node power state + if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; } + var powerState = 0; + 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; } + if ((state.powerState == undefined) || (state.powerState != powerState)) { state.powerState = powerState; } + + // Update the combined node state + var x = {}; x[nodeid] = 1; + obj.UpdateConnectivityState(x); } - - // Set node power state - if (connectType == 1) { state.agentPower = powerState; } else if (connectType == 2) { state.ciraPower = powerState; } else if (connectType == 4) { state.amtPower = powerState; } - var powerState = 0, oldPowerState = state.powerState; - 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; } - if ((state.powerState == undefined) || (state.powerState != powerState)) { - state.powerState = powerState; - eventConnectChange = 1; - - // Set new power state in database - obj.db.file.insert({ type: 'power', time: connectTime, node: nodeid, power: powerState, oldPower: oldPowerState }); - } - - // Event the node connection change - if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, ct: connectTime, nolog: 1 }); } } // Clear the connectivity state of a node and setup the server so that messages can be routed correctly. // meshId: mesh identifier of format mesh/domain/meshidhex // nodeId: node identifier of format node/domain/nodeidhex // connectType: Bitmask, 1 = MeshAgent, 2 = Intel AMT CIRA, 3 = Intel AMT local. - obj.ClearConnectivityState = function (meshid, nodeid, connectType) { - //console.log('ClearConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType]); + obj.ClearConnectivityState = function (meshid, nodeid, connectType, serverid) { + //console.log('ClearConnectivity for ' + nodeid.substring(0, 16) + ', Type: ' + connectTypeStrings[connectType] + (serverid == null?(''):(', ServerId: ' + serverid))); + if ((serverid == null) && (obj.multiServer != null)) { obj.multiServer.DispatchMessage({ action: 'ClearConnectivityState', meshid: meshid, nodeid: nodeid, connectType: connectType }); } - // Remove the agent connection from the nodes connection list - var state = obj.connectivityByNode[nodeid]; - if (state == undefined) return; + if (obj.multiServer == null) { + // Single server mode - if ((state.connectivity & connectType) != 0) { - state.connectivity -= connectType; + // Remove the agent connection from the nodes connection list + var state = obj.connectivityByNode[nodeid]; + if (state == undefined) return; - // If the node is completely disconnected, clean it up completely - if (state.connectivity == 0) { - delete obj.connectivityByNode[nodeid]; - delete obj.connectivityByMesh[meshid][nodeid]; - state.powerState = 0; + if ((state.connectivity & connectType) != 0) { + state.connectivity -= connectType; + + // If the node is completely disconnected, clean it up completely + if (state.connectivity == 0) { delete obj.connectivityByNode[nodeid]; state.powerState = 0; } + eventConnectChange = 1; } - eventConnectChange = 1; + + // Clear node power state + if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; } + var powerState = 0, oldPowerState = state.powerState; + 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; } + if ((state.powerState == undefined) || (state.powerState != powerState)) { + state.powerState = powerState; + eventConnectChange = 1; + + // Set new power state in database + obj.db.file.insert({ type: 'power', time: Date.now(), node: nodeid, power: powerState, oldPower: oldPowerState }); + } + + // Event the node connection change + if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1, nopeers: 1 }); } + } else { + // Multi server mode + + // Remove the agent connection from the nodes connection list + if (serverid == null) { serverid = obj.serverId; } + if (obj.peerConnectivityByNode[serverid] == null) return; // Guard against unknown serverid's + var state = obj.peerConnectivityByNode[serverid][nodeid]; + if (state == undefined) return; + + // If existing state exist, remove this connection + if ((state.connectivity & connectType) != 0) { + state.connectivity -= connectType; // Remove one connectivity mode + + // If the node is completely disconnected, clean it up completely + if (state.connectivity == 0) { delete obj.peerConnectivityByNode[serverid][nodeid]; state.powerState = 0; } + } + + // Clear node power state + if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; } + var powerState = 0; + 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; } + if ((state.powerState == undefined) || (state.powerState != powerState)) { state.powerState = powerState; } + + // Update the combined node state + var x = {}; x[nodeid] = 1; + obj.UpdateConnectivityState(x); } - - // Clear node power state - if (connectType == 1) { state.agentPower = 0; } else if (connectType == 2) { state.ciraPower = 0; } else if (connectType == 4) { state.amtPower = 0; } - var powerState = 0, oldPowerState = state.powerState; - 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; } - if ((state.powerState == undefined) || (state.powerState != powerState)) { - state.powerState = powerState; - eventConnectChange = 1; - - // Set new power state in database - obj.db.file.insert({ type: 'power', time: Date.now(), node: nodeid, power: powerState, oldPower: oldPowerState }); - } - - // Event the node connection change - if (eventConnectChange == 1) { obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1 }); } } // Update the default mesh core @@ -689,7 +792,7 @@ function InstallModule(modulename, func, tag1, tag2) { process.on('SIGINT', function () { if (meshserver != null) { meshserver.Stop(); meshserver = null; } console.log('Server Ctrl-C exit...'); process.exit(); }); // Build the list of required modules -var modules = ['nedb', 'https', 'unzip', 'xmldom', 'express', 'mongojs', 'archiver', 'minimist', 'multiparty', 'node-forge', 'express-ws', 'compression', 'body-parser', 'connect-redis', 'express-session', 'express-handlebars']; +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']; if (require('os').platform() == 'win32') { modules.push("node-windows"); } // Run as a command line, if we are not using service arguments, don't need to install the service package. diff --git a/mesherrors.txt b/mesherrors.txt index a86e5f7f..68975771 100644 --- a/mesherrors.txt +++ b/mesherrors.txt @@ -251,3 +251,1547 @@ Error: ENOENT: no such file or directory, stat 'C:\Users\Default.DESKTOP-M9I88C9 at Error (native) +-------- 9/11/2017, 4:02:32 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335 + obj.peerServers[serverId] = CreatePeerServer(obj, serverId, url); + ^ + +ReferenceError: CreatePeerServer is not defined + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:37) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71) + + +-------- 9/11/2017, 4:02:34 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335 + obj.peerServers[serverId] = CreatePeerServer(obj, serverId, url); + ^ + +ReferenceError: CreatePeerServer is not defined + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:37) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71) + + +-------- 9/11/2017, 4:03:00 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:20 + obj.db = db; + ^ + +ReferenceError: db is not defined + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:20:18) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:335:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:328:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71) + + +-------- 9/11/2017, 4:08:08 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22 + obj.settings = settings; + ^ + +ReferenceError: settings is not defined + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71) + + +-------- 9/11/2017, 4:08:10 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22 + obj.settings = settings; + ^ + +ReferenceError: settings is not defined + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:291:71) + + +-------- 9/11/2017, 4:08:55 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22 + obj.settings = settings; + ^ + +ReferenceError: settings is not defined + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:24) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/11/2017, 4:09:38 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22 + obj.certificates = certificates; + ^ + +ReferenceError: certificates is not defined + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:22:28) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:254:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:279:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/11/2017, 4:10:15 PM -------- + +module.js:440 + throw err; + ^ + +Error: Cannot find module 'websocket' + at Function.Module._resolveFilename (module.js:438:15) + at Function.Module._load (module.js:386:25) + at Module.require (module.js:466:17) + at require (internal/module.js:20:19) + at connect (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:44:31) + at Object.obj.CreatePeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:185:9) + at Object.obj.ConnectToPeer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:254:41) + at Object.obj.ConnectToPeers (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:21) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:279:9) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/11/2017, 4:59:13 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:541 +}); +^ +SyntaxError: Unexpected token } + at exports.runInThisContext (vm.js:53:16) + at Module._compile (module.js:511:25) + at Object.Module._extensions..js (module.js:550:10) + at Module.load (module.js:456:32) + at tryModuleLoad (module.js:415:12) + at Function.Module._load (module.js:407:3) + at Module.require (module.js:466:17) + at require (internal/module.js:20:19) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:43) + + +-------- 9/11/2017, 4:59:15 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:541 +}); +^ +SyntaxError: Unexpected token } + at exports.runInThisContext (vm.js:53:16) + at Module._compile (module.js:511:25) + at Object.Module._extensions..js (module.js:550:10) + at Module.load (module.js:456:32) + at tryModuleLoad (module.js:415:12) + at Function.Module._load (module.js:407:3) + at Module.require (module.js:466:17) + at require (internal/module.js:20:19) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:43) + + +-------- 9/11/2017, 5:02:48 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:239 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; } + ^ + +TypeError: Cannot read property 'webCertificatHash' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:239:35) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:08:56 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; } + ^ + +TypeError: Cannot read property 'webCertificatHash' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:35) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:10:05 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247 + if (obj.parent.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; } + ^ + +TypeError: Cannot read property 'webCertificatHash' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:35) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:10:30 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:11:05 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:213:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:247:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:11:56 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:12:29 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:12:51 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:16:57 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214 + if (obj.parent.wsagents[obj.dbNodeKey] == obj) { + ^ + +TypeError: Cannot read property 'wsagents' of undefined + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:214:27) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:248:78) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/11/2017, 5:18:01 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:311 + ws.on('close', function (req) { console.log('InPeer: Close'); obj.parent.parent.debug(1, 'InPeer disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); obj.close(0); }); + ^ + +TypeError: Cannot read property 'parent' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:311:81) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitNone (events.js:91:20) + at TLSSocket.emit (events.js:185:7) + at endReadableNT (_stream_readable.js:926:12) + at _combinedTickCallback (internal/process/next_tick.js:74:11) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:18:41 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255 + var privateKey = obj.forge.pki.privateKeyFromPem(obj.parent.certificates.agent.key); + ^ + +TypeError: Cannot read property 'agent' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:255:93) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:19:16 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:262 + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(parent.agentCertificatAsn1.length) + parent.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature + ^ + +TypeError: Cannot read property 'length' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:262:105) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:21:07 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264 + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(parent.agentCertificatAsn1.length) + parent.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature + ^ + +TypeError: Cannot read property 'length' of undefined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:105) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/11/2017, 5:21:54 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:117:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:26:34 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:117:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:28:45 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:30:02 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:30:40 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:31:57 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:32:34 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:32:37 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:16 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:19 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:22 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:25 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:28 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:31 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:34 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:37 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:34:40 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:118:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:39:14 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:39:35 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:119:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:41:15 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:122:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:43:54 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:44:22 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:46:50 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:48:17 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:120:36) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:49:30 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:105 + obj.conn.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(obj.agentRootCertificatAsn1.length) + obj.agentRootCertificatAsn1 + privateKey.sign(md)); // Command 3, signature + ^ + +TypeError: Cannot read property 'length' of undefined + at WebSocketConnection. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:105:123) + at emitOne (events.js:96:13) + at WebSocketConnection.emit (events.js:188:7) + at WebSocketConnection.processFrame (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:524:26) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\websocket\lib\WebSocketConnection.js:321:40 + at _combinedTickCallback (internal/process/next_tick.js:67:7) + at process._tickCallback (internal/process/next_tick.js:98:9) + + +-------- 9/11/2017, 5:54:31 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99 + var len = msg.length; + ^ + +TypeError: Cannot read property 'length' of undefined + at Object.md.update (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\sha256.js:99:18) + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:435:16) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:29) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/11/2017, 5:56:39 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:442 + obj.dbNodeKey = 'node/' + domain.id + '/' + obj.nodeid; + ^ + +ReferenceError: domain is not defined + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:442:39) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:264:29) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/12/2017, 9:15:05 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + ^ + +TypeError: Cannot read property 'pki' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:15:07 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + ^ + +TypeError: Cannot read property 'pki' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:15:09 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + ^ + +TypeError: Cannot read property 'pki' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:15:11 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13 + obj.ourOwnServerRootId = obj.forge.pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + ^ + +TypeError: Cannot read property 'pki' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:39) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:15:50 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13 + obj.ourOwnServerRootId = require('node-forge').pki.getPublicKeyFingerprint(parent.certificates.root.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + ^ + +TypeError: Cannot read property 'md' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:13:148) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:16:06 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389 + _bnToBytes(key.n)), + ^ + +TypeError: Cannot read property 'n' of undefined + at Object.pki.publicKeyToRSAPublicKey (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389:21) + at Object.pki.getPublicKeyFingerprint (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\x509.js:818:28) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:44) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:16:51 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1680 + var hex = b.toString(16); + ^ + +TypeError: Cannot read property 'toString' of undefined + at _bnToBytes (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1680:14) + at Object.pki.publicKeyToRSAPublicKey (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1389:7) + at Object.pki.getPublicKeyFingerprint (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\x509.js:818:28) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:44) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:18:37 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:491 + throw error; + ^ + +Error: Too few bytes to read ASN.1 value. + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:487:19) + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:524:20) + at Object.asn1.fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:448:10) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:73) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:23:44 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:15 + obj.webCertificatHash = obj.parent.webserver.webCertificatHash; + ^ + +TypeError: Cannot read property 'webCertificatHash' of undefined + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:15:49) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:24:58 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:491 + throw error; + ^ + +Error: Too few bytes to read ASN.1 value. + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:487:19) + at _fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:524:20) + at Object.asn1.fromDer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\asn1.js:448:10) + at Object.module.exports.CreateMultiServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:14:73) + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:292:71) + + +-------- 9/12/2017, 9:38:03 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\db.js:45 + obj.identifier = new Buffer(obj.crypto.randomBytes(32), 'binary').toString('hex'); + ^ + +TypeError: Cannot read property 'randomBytes' of undefined + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\db.js:45:55 + at newArguments.(anonymous function) (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\executor.js:29:17) + at Cursor.execFn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:484:12) + at callback (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:126:19) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:193:12 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:329:14 + at Object.async.eachSeries (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:130:20) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:323:11 + at fn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:582:34) + at Immediate._onImmediate (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:498:34) + + +-------- 9/12/2017, 9:58:55 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:544 + throw new Error('Encrypted message is invalid.'); + ^ + +Error: Encrypted message is invalid. + at Object.pki.rsa.decrypt (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:544:11) + at Object.key.verify (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\node-forge\js\rsa.js:1070:22) + at processAgentSignature (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:437:47) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263:29) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + + +-------- 9/12/2017, 10:28:53 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280 + completeAgentConnection(); + ^ + +ReferenceError: completeAgentConnection is not defined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/12/2017, 10:28:56 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280 + completeAgentConnection(); + ^ + +ReferenceError: completeAgentConnection is not defined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/12/2017, 10:35:18 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263 + if (processAgentSignature(obj.unauthsign) == false) { disonnect(); return; } else { completeAgentConnection(); } + ^ + +ReferenceError: completeAgentConnection is not defined + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:263:109) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + at Receiver.expectHandler (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:493:33) + + +-------- 9/12/2017, 10:36:49 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308 + var msg = { action: 'info', serverid: obj.peerConfig.serverId, dbid: obj.parent.db.identifier }; + ^ + +TypeError: Cannot read property 'serverId' of undefined + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:65) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/12/2017, 10:36:52 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308 + var msg = { action: 'info', serverid: obj.peerConfig.serverId, dbid: obj.parent.db.identifier }; + ^ + +TypeError: Cannot read property 'serverId' of undefined + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:65) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/12/2017, 10:38:31 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308 + var msg = { action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.db.identifier }; + ^ + +TypeError: Cannot read property 'identifier' of undefined + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:308:102) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:280:21) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/12/2017, 11:10:29 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:309 + if ((obj.authenticated == 1) && (infoSent == false)) { + ^ + +ReferenceError: infoSent is not defined + at completePeerServerConnection (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:309:46) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:266:109) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + at Receiver.opcodes.1.finish (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:541:12) + + +-------- 9/12/2017, 5:23:34 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440 + obj.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.connectivityByMesh })); + ^ + +TypeError: obj.send is not a function + at Object.obj.SetupPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440:13) + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:40) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/12/2017, 5:23:37 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440 + obj.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.connectivityByMesh })); + ^ + +TypeError: obj.send is not a function + at Object.obj.SetupPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:440:13) + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:360:40) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/12/2017, 5:24:26 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460 + obj.peerConnectivityByMesh[peerServerId] = msg.connectivityTable; + ^ + +TypeError: Cannot set property 'amtmachine7' of undefined + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460:58) + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/12/2017, 5:24:29 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460 + obj.peerConnectivityByMesh[peerServerId] = msg.connectivityTable; + ^ + +TypeError: Cannot set property 'amtmachine7' of undefined + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:460:58) + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/12/2017, 5:25:43 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:463 + for (var nodeid in connectionsForMesh) { obj.parent.peerConnectivityByNode[peerServerId][nodeid] = connectionsForMesh[nodeid]; } + ^ + +TypeError: Cannot set property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined + at Object.obj.ProcessPeerServerMessage (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:463:118) + at processServerData (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:365:32) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:251:49) + at emitTwo (events.js:106:13) + at WebSocket.emit (events.js:191:7) + at Receiver.ontext (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:841:10) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:536:18 + at Receiver.applyExtensions (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:371:5) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:508:14 + at Receiver.flush (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\Receiver.js:347:3) + + +-------- 9/12/2017, 5:32:16 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296 + if (obj.multiServer != null) { obj.serverid = obj.peerConfig.serverId; console.log('RRR', obj.serverid); } + ^ + +TypeError: Cannot read property 'serverId' of undefined + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296:85) + + +-------- 9/12/2017, 5:32:18 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296 + if (obj.multiServer != null) { obj.serverid = obj.peerConfig.serverId; console.log('RRR', obj.serverid); } + ^ + +TypeError: Cannot read property 'serverId' of undefined + at InternalFieldObject.ondone (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:296:85) + + +-------- 9/12/2017, 10:31:38 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483 + var state = obj.peerConnectivityByNode[serverid][nodeid]; + ^ + +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483:61) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 10:31:40 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483 + var state = obj.peerConnectivityByNode[serverid][nodeid]; + ^ + +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:483:61) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 10:33:42 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486 + var state = obj.peerConnectivityByNode[serverid][nodeid]; + ^ + +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486:61) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 10:34:04 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486 + var state = obj.peerConnectivityByNode[serverid][nodeid]; + ^ + +TypeError: Cannot read property 'node//26ED2CDC337C2EA5AD1509ACDF03C58DF0351B353372EEA8F7FDE48AC111CED5' of undefined + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:486:61) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 10:58:04 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:436 + var state = null, oldState = obj.connectivityByNode[nodeid]; + ^ + +ReferenceError: nodeid is not defined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:436:65) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 10:58:30 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450 + state.connectivity |= peerState.connectivity; + ^ + +TypeError: Cannot read property 'connectivity' of null + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 11:00:05 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450 + state.connectivity |= peerState.connectivity; + ^ + +TypeError: Cannot read property 'connectivity' of undefined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 11:00:07 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450 + state.connectivity |= peerState.connectivity; + ^ + +TypeError: Cannot read property 'connectivity' of undefined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:450:26) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:529:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/12/2017, 11:25:31 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:598 + delete obj.peerConnectivityByNode[serverid][meshid][nodeid]; + ^ + +TypeError: Cannot convert undefined or null to object + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:598:73) + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitNone (events.js:91:20) + at TLSSocket.emit (events.js:185:7) + at endReadableNT (_stream_readable.js:926:12) + at _combinedTickCallback (internal/process/next_tick.js:74:11) + + +-------- 9/12/2017, 11:26:16 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:616 + if (((newstate != null) && (oldstate == null)) || (oldstate.connectivity != newstate.connectivity) || (oldstate.powerState != newstate.powerState)) { + ^ + +TypeError: Cannot read property 'connectivity' of null + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:616:97) + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitNone (events.js:91:20) + at TLSSocket.emit (events.js:185:7) + at endReadableNT (_stream_readable.js:926:12) + at _combinedTickCallback (internal/process/next_tick.js:74:11) + + +-------- 9/12/2017, 11:27:27 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:617 + if (((newstate != null) && (oldstate == null)) || (oldstate.connectivity != newstate.connectivity) || (oldstate.powerState != newstate.powerState)) { + ^ + +TypeError: Cannot read property 'connectivity' of null + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:617:97) + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitNone (events.js:91:20) + at TLSSocket.emit (events.js:185:7) + at endReadableNT (_stream_readable.js:926:12) + at _combinedTickCallback (internal/process/next_tick.js:74:11) + + +-------- 9/12/2017, 11:29:50 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:620 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 }); + ^ + +TypeError: Cannot read property 'connectivity' of null + at Object.CreateMeshCentralServer.obj.ClearConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:620:126) + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:41:31) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:216:133) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitNone (events.js:91:20) + at TLSSocket.emit (events.js:185:7) + at endReadableNT (_stream_readable.js:926:12) + at _combinedTickCallback (internal/process/next_tick.js:74:11) + + +-------- 9/12/2017, 11:47:49 PM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:443 + var peerState = obj.peerConnectivityByNode[serverid][nodeid]; + ^ + +TypeError: Cannot read property 'node//46EE880CF680F1665D00FE085FE1DE9D909BF62251BDC5DA54887231469FF086' of undefined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:443:69) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:535:17) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshagent.js:281:39 + at newArguments.(anonymous function) (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\executor.js:29:17) + at Cursor.execFn (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:484:12) + at callback (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:126:19) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\cursor.js:193:12 + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:329:14 + at Object.async.eachSeries (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\async\lib\async.js:130:20) + at C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\nedb\lib\datastore.js:323:11 + + +-------- 9/13/2017, 10:16:17 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 }); + ^ + +ReferenceError: newstate is not defined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471:118) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:546:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/13/2017, 10:16:19 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471 + obj.DispatchEvent(['*', meshid], obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newstate.connectivity, pwr: newstate.powerState, nolog: 1, nopeers: 1 }); + ^ + +ReferenceError: newstate is not defined + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:471:118) + at Object.CreateMeshCentralServer.obj.SetConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:546:17) + at obj.changeConnectState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:216:28) + at Object.obj.parseRmcpPacket (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:199:43) + at Socket.server.on (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\amtscanner.js:157:57) + at emitTwo (events.js:106:13) + at Socket.emit (events.js:191:7) + at UDP.onMessage (dgram.js:532:8) + + +-------- 9/13/2017, 10:41:12 AM -------- + +C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:468 + console.log('xx', nodeid, state.meshid, newConnectivity, oldPowerState, newPowerState, oldPowerState); + ^ + +TypeError: Cannot read property 'meshid' of null + at Object.CreateMeshCentralServer.obj.UpdateConnectivityState (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\meshcentral.js:468:44) + at Object.obj.ClearPeerServer (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:455:20) + at Object.obj.close (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:241:54) + at WebSocket. (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\multiserver.js:310:138) + at emitTwo (events.js:111:20) + at WebSocket.emit (events.js:191:7) + at WebSocket.cleanupWebsocketResources (C:\Users\Default.DESKTOP-M9I88C9\Desktop\AmtWebApp\meshcentral\node_modules\ws\lib\WebSocket.js:950:8) + at emitOne (events.js:101:20) + at TLSSocket.emit (events.js:188:7) + at emitErrorNT (net.js:1265:8) + + diff --git a/multiserver.js b/multiserver.js index c3b4882a..a8e8cda9 100644 --- a/multiserver.js +++ b/multiserver.js @@ -9,10 +9,381 @@ module.exports.CreateMultiServer = function (parent, args) { var obj = {}; obj.parent = parent; obj.crypto = require('crypto'); + obj.peerConfig = parent.config.peers; + obj.forge = require('node-forge'); + obj.outPeerServers = {}; // Outgoing peer servers + obj.peerServers = {}; // All connected servers (in & out). Only present in this list if the connection is setup + + // Create a mesh server module that will connect to other servers + obj.CreatePeerOutServer = function (parent, serverid, url) { + var obj = {}; + obj.parent = parent; + obj.serverid = serverid; + obj.url = url; + obj.ws = null; + obj.conn = null; + obj.certificates = parent.parent.certificates; + obj.common = require('./common.js'); + obj.forge = require('node-forge'); + obj.crypto = require('crypto'); + obj.pki = obj.forge.pki; + obj.connectionState = 0; + obj.retryTimer = null; + obj.retryBackoff = 0; + obj.connectHandler = null; + obj.webCertificatHash = obj.parent.parent.webserver.webCertificatHash; + obj.agentCertificatHashHex = obj.parent.parent.webserver.agentCertificatHashHex; + obj.agentCertificatAsn1 = obj.parent.parent.webserver.agentCertificatAsn1; + obj.peerServerId = null; + obj.authenticated = 0; + + // Disconnect from the server and/or stop trying + obj.stop = function () { + obj.connectionState = 0; + disconnect(); + } + + // Make one attempt at connecting to the server + function connect() { + obj.retryTimer = null; + obj.connectionState = 1; + + // Get the web socket setup + const WebSocket = require('websocket'); + var WebSocketClient = require('websocket').client; + obj.ws = new WebSocketClient(); + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Connecting to: ' + url + 'meshserver.ashx'); + + // Register the connection failed event + obj.ws.on('connectFailed', function (error) { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Failed connection'); disconnect(); }); + + // Register the connection event + obj.ws.on('connect', function (connection) { + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Connected'); + if (obj.meshScanner != null) { obj.meshScanner.stop(); } + obj.connectionState |= 2; + obj.conn = connection; + obj.nonce = obj.forge.random.getBytesSync(32); + + // If the connection has an error or closes + obj.conn.on('error', function (error) { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Error: ' + error); disconnect(); }); + obj.conn.on('close', function () { obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Disconnected'); disconnect(); }); + + // Get the peer server's certificate and compute the server public key hash + if (obj.ws.socket == undefined) return; + var rawcertbuf = obj.ws.socket.getPeerCertificate().raw, rawcert = ''; + for (var i = 0; i < rawcertbuf.length; i++) { rawcert += String.fromCharCode(rawcertbuf[i]); } + var serverCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(rawcert)); + obj.serverCertHash = obj.forge.pki.getPublicKeyFingerprint(serverCert.publicKey, { encoding: 'binary', md: obj.forge.md.sha256.create() }); + + // If a message is received + obj.conn.on('message', function (msg) { + if (msg.type == 'binary') { var msg2 = ""; for (var i = 0; i < msg.binaryData.length; i++) { msg2 += String.fromCharCode(msg.binaryData[i]); } msg = msg2; } + else if (msg.type == 'utf8') { msg = msg.utf8Data; } + if (msg.length < 2) return; + + if (msg.charCodeAt(0) == 123) { + if (obj.connectionState == 15) { processServerData(msg); } + } else { + var cmd = obj.common.ReadShort(msg, 0); + switch (cmd) { + case 1: { + // Server authentication request + if (msg.length != 66) { obj.parent.parent.debug(1, 'OutPeer: BAD MESSAGE(A1)'); return; } + + // Check that the server hash matches the TLS server certificate public key hash + if (obj.serverCertHash != msg.substring(2, 34)) { obj.parent.parent.debug(1, 'OutPeer: Server hash mismatch.'); disconnect(); return; } + obj.servernonce = msg.substring(34); + + // Use our agent root private key to sign the ServerHash + ServerNonce + AgentNonce + var privateKey = obj.forge.pki.privateKeyFromPem(obj.certificates.agent.key); + var md = obj.forge.md.sha256.create(); + md.update(msg.substring(2), 'binary'); + md.update(obj.nonce, 'binary'); + + // Send back our certificate + signature + agentRootCertificatAsn1 = obj.forge.asn1.toDer(obj.forge.pki.certificateToAsn1(obj.forge.pki.certificateFromPem(obj.certificates.agent.cert))).getBytes(); + obj.conn.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(agentRootCertificatAsn1.length) + agentRootCertificatAsn1 + privateKey.sign(md)); // Command 3, signature + break; + } + case 2: { + // Server certificate + var certlen = obj.common.ReadShort(msg, 2), serverCert = null; + try { serverCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(msg.substring(4, 4 + certlen))); } catch (e) { } + if (serverCert == null) { obj.parent.parent.debug(1, 'OutPeer: Invalid server certificate.'); disconnect(); return; } + var serverid = obj.forge.pki.getPublicKeyFingerprint(serverCert.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + if (serverid !== obj.agentCertificatHashHex) { obj.parent.parent.debug(1, 'OutPeer: Server hash mismatch.'); disconnect(); return; } + + // Server signature, verify it + var md = obj.forge.md.sha256.create(); + md.update(obj.serverCertHash, 'binary'); + md.update(obj.nonce, 'binary'); + md.update(obj.servernonce, 'binary'); + if (serverCert.publicKey.verify(md.digest().bytes(), msg.substring(4 + certlen)) == false) { obj.parent.parent.debug(1, 'OutPeer: Server sign check failed.'); disconnect(); return; } + + // Connection is a success, clean up + delete obj.nonce; + delete obj.servernonce; + delete obj.serverCertHash; + obj.connectionState |= 4; + obj.retryBackoff = 0; // Set backoff connection timer back to fast. + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Verified peer connection to ' + obj.url); + + // Send information about our server to the peer + 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 })); } + //if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(1); } + break; + } + case 4: { + // Server confirmed authentication, we are allowed to send commands to the server + obj.connectionState |= 8; + 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 })); } + //if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(1); } + break; + } + default: { + obj.parent.parent.debug(1, 'OutPeer ' + obj.serverid + ': Un-handled command: ' + cmd); + break; + } + } + } + }); + + // Not sure why, but we need to delay the first send + setTimeout(function () { + if ((obj.ws == null) || (obj.conn == null)) return; + // Start authenticate the mesh agent by sending a auth nonce & server TLS cert hash. + // Send 256 bits SHA256 hash of TLS cert public key + 256 bits nonce + obj.conn.send(obj.common.ShortToStr(1) + obj.serverCertHash + obj.nonce); // Command 1, hash + nonce + }, 10); + }); + + obj.ws.connect(obj.url + 'meshserver.ashx', null, null, null, { rejectUnauthorized: false, cert: obj.certificates.agent.cert, key: obj.certificates.agent.key }); + } + + // Disconnect from the server, if we need to, try again with a delay. + function disconnect() { + if (obj.authenticated == 3) { obj.parent.ClearPeerServer(obj, obj.peerServerId); obj.authenticated = 0; } + if ((obj.connectionState == 15) && (obj.connectHandler != null)) { obj.connectHandler(0); } + if (obj.conn != null) { obj.conn.close(); obj.conn = null; } + if (obj.ws != null) { obj.ws = null; } + if (obj.retryTimer != null) { clearTimeout(obj.retryTimer); obj.retryTimer = null; } + // Re-try connection + if (obj.connectionState >= 1) { obj.connectionState = 1; if (obj.retryTimer == null) { obj.retryTimer = setTimeout(connect, getConnectRetryTime()); } } + } + + // Get the next retry time in milliseconds + function getConnectRetryTime() { + if (obj.retryBackoff < 30000) { obj.retryBackoff += Math.floor((Math.random() * 3000) + 1000); } + return obj.retryBackoff; + } + + // Send a JSON message to the peer server + obj.send = function (msg) { + try { + if (obj.ws == null || obj.conn == null || obj.connectionState != 15) { return; } + if (typeof msg == 'object') { obj.conn.send(JSON.stringify(msg)); return; } + if (typeof msg == 'string') { obj.conn.send(msg); return; } + } catch (e) { } + } + + // Process incoming peer server JSON data + function processServerData(msg) { + var str = msg.toString('utf8'); + if (str[0] == '{') { + 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. + if (command.action == 'info') { + if (obj.authenticated != 3) { + // We get the peer's serverid and database identifier. + if ((command.serverid != null) && (command.dbid != null)) { + if (command.serverid == obj.parent.peerConfig.serverId) { console.log('ERROR: Same server ID, trying to peer with self. (' + obj.url + ', ' + command.serverid + ').'); return; } + 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; } + obj.peerServerId = command.serverid; + obj.peerServerKey = command.key; + obj.authenticated = 3; + obj.parent.SetupPeerServer(obj, obj.peerServerId); + } + } + } else if (obj.authenticated == 3) { + // Pass the message to the parent object for processing. + obj.parent.ProcessPeerServerMessage(obj, obj.peerServerId, command); + } + } + } + + connect(); + return obj; + } + + // Create a mesh server module that received a connection to another server + obj.CreatePeerInServer = function (parent, ws, req) { + var obj = {}; + obj.ws = ws; + obj.parent = parent; + obj.common = require('./common.js'); + obj.forge = require('node-forge'); + obj.crypto = require('crypto'); + obj.authenticated = 0; + obj.remoteaddr = obj.ws._socket.remoteAddress; + obj.receivedCommands = 0; + obj.webCertificatHash = obj.parent.parent.webserver.webCertificatHash; + obj.agentCertificatHashHex = obj.parent.parent.webserver.agentCertificatHashHex; + obj.agentCertificatAsn1 = obj.parent.parent.webserver.agentCertificatAsn1; + obj.infoSent = 0; + obj.peerServerId = null; + if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); } + + // Send a message to the peer server + obj.send = function (data) { + try { + if (typeof data == 'string') { obj.ws.send(new Buffer(data, 'binary')); return; } + if (typeof data == 'object') { obj.ws.send(JSON.stringify(data)); return; } + obj.ws.send(data); + } catch (e) { } + } + + // Disconnect this server + obj.close = function (arg) { + 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 + 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 + if (obj.authenticated == 3) { obj.parent.ClearPeerServer(obj, obj.peerServerId); obj.authenticated = 0; } + } + + // When data is received from the mesh agent web socket + ws.on('message', function (msg) { + if (msg.type == 'binary') { var msg2 = ""; for (var i = 0; i < msg.binaryData.length; i++) { msg2 += String.fromCharCode(msg.binaryData[i]); } msg = msg2; } + else if (msg.type == 'utf8') { msg = msg.utf8Data; } + if (msg.length < 2) return; + + if (obj.authenticated >= 2) { // We are authenticated + if (msg.charCodeAt(0) == 123) { processServerData(msg); } + if (msg.length < 2) return; + var cmdid = obj.common.ReadShort(msg, 0); + // Process binary commands (if any). None right now. + } + else if (obj.authenticated < 2) { // We are not authenticated + var cmd = obj.common.ReadShort(msg, 0); + if (cmd == 1) { + // Agent authentication request + if ((msg.length != 66) || ((obj.receivedCommands & 1) != 0)) return; + obj.receivedCommands += 1; // Agent can't send the same command twice on the same connection ever. Block DOS attack path. + + // Check that the server hash matches out own web certificate hash + if (obj.webCertificatHash != msg.substring(2, 34)) { obj.close(); return; } + + // Use our server private key to sign the ServerHash + AgentNonce + ServerNonce + var privateKey = obj.forge.pki.privateKeyFromPem(obj.parent.parent.certificates.agent.key); + var md = obj.forge.md.sha256.create(); + md.update(msg.substring(2), 'binary'); + md.update(obj.nonce, 'binary'); + obj.agentnonce = msg.substring(34); + + // Send back our certificate + signature + obj.send(obj.common.ShortToStr(2) + obj.common.ShortToStr(obj.agentCertificatAsn1.length) + obj.agentCertificatAsn1 + privateKey.sign(md)); // Command 2, certificate + signature + + // Check the agent signature if we can + if (obj.unauthsign != undefined) { + if (processAgentSignature(obj.unauthsign) == false) { disconnect(); return; } else { completePeerServerConnection(); } + } + } + else if (cmd == 2) { + // Agent certificate + if ((msg.length < 4) || ((obj.receivedCommands & 2) != 0)) return; + obj.receivedCommands += 2; // Agent can't send the same command twice on the same connection ever. Block DOS attack path. + + // Decode the certificate + var certlen = obj.common.ReadShort(msg, 2); + obj.unauth = {}; + obj.unauth.nodeCert = null; + try { obj.unauth.nodeCert = obj.forge.pki.certificateFromAsn1(obj.forge.asn1.fromDer(msg.substring(4, 4 + certlen))); } catch (e) { return; } + obj.unauth.nodeid = obj.forge.pki.getPublicKeyFingerprint(obj.unauth.nodeCert.publicKey, { encoding: 'hex', md: obj.forge.md.sha256.create() }); + + // Check the agent signature if we can + if (obj.agentnonce == undefined) { obj.unauthsign = msg.substring(4 + certlen); } else { if (processAgentSignature(msg.substring(4 + certlen)) == false) { disconnect(); return; } } + completePeerServerConnection(); + } + else if (cmd == 3) { + // Agent meshid + if ((msg.length < 56) || ((obj.receivedCommands & 4) != 0)) return; + obj.receivedCommands += 4; // Agent can't send the same command twice on the same connection ever. Block DOS attack path. + completePeerServerConnection(); + } + } + }); + + // If error, do nothing + ws.on('error', function (err) { obj.parent.parent.debug(1, 'InPeer: Connection Error: ' + err); }); + + // If the mesh agent web socket is closed, clean up. + ws.on('close', function (req) { obj.parent.parent.debug(1, 'InPeer disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); obj.close(0); }); + // obj.ws._socket._parent.on('close', function (req) { obj.parent.parent.debug(1, 'Agent TCP disconnect ' + obj.nodeid + ' (' + obj.remoteaddr + ')'); }); + + // Start authenticate the mesh agent by sending a auth nonce & server TLS cert hash. + // Send 256 bits SHA256 hash of TLS cert public key + 256 bits nonce + obj.nonce = obj.forge.random.getBytesSync(32); + obj.send(obj.common.ShortToStr(1) + obj.webCertificatHash + obj.nonce); // Command 1, hash + nonce + + // Once we get all the information about an agent, run this to hook everything up to the server + function completePeerServerConnection() { + if (obj.authenticated != 1) return; + obj.send(obj.common.ShortToStr(4)); + obj.send(JSON.stringify({ action: 'info', serverid: obj.parent.peerConfig.serverId, dbid: obj.parent.parent.db.identifier, key: obj.parent.serverKey })); + obj.authenticated = 2; + } + + // Verify the agent signature + function processAgentSignature(msg) { + var md = obj.forge.md.sha256.create(); // TODO: Switch this to SHA256 on node instead of forge. + md.update(obj.parent.parent.webserver.webCertificatHash, 'binary'); + md.update(obj.nonce, 'binary'); + md.update(obj.agentnonce, 'binary'); + if (obj.unauth.nodeCert.publicKey.verify(md.digest().bytes(), msg) == false) { return false; } + if (obj.unauth.nodeid !== obj.agentCertificatHashHex) { return false; } + + // Connection is a success, clean up + obj.nodeid = obj.unauth.nodeid.toUpperCase(); + delete obj.nonce; + delete obj.agentnonce; + delete obj.unauth; + if (obj.unauthsign) delete obj.unauthsign; + obj.authenticated = 1; + return true; + } + + // Process incoming peer server JSON data + function processServerData(msg) { + var str = msg.toString('utf8'); + if (str[0] == '{') { + 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. + if (command.action == 'info') { + if (obj.authenticated != 3) { + // We get the peer's serverid and database identifier. + if ((command.serverid != null) && (command.dbid != null)) { + if (command.serverid == obj.parent.peerConfig.serverId) { console.log('ERROR: Same server ID, trying to peer with self. (' + obj.remoteaddr + ', ' + command.serverid + ').'); return; } + 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; } + if (obj.parent.peerConfig.servers[command.serverid] == null) { console.log('ERROR: Unknown peer serverid: ' + command.serverid + ' (' + obj.remoteaddr + ').'); return; } + obj.peerServerId = command.serverid; + obj.peerServerKey = command.key; + obj.authenticated = 3; + obj.parent.SetupPeerServer(obj, obj.peerServerId); + } + } + } else if (obj.authenticated == 3) { + // Pass the message to the parent object for processing. + obj.parent.ProcessPeerServerMessage(obj, obj.peerServerId, command); + } + } + } + + return obj; + } + + // If we have no peering configuration, don't setup this object + if (obj.peerConfig == null) { return null; } // Generate a cryptographic key used to encode and decode cookies obj.generateCookieKey = function () { - return new Buffer(obj.crypto.randomBytes(32), 'binary').toString('ascii'); + return new Buffer(obj.crypto.randomBytes(32), 'binary').toString('hex'); } // Encode an object as a cookie using a key @@ -56,29 +427,67 @@ module.exports.CreateMultiServer = function (parent, args) { // Dispatch an event to other MeshCentral2 peer servers obj.DispatchEvent = function (ids, source, event) { - // TODO + var busmsg = JSON.stringify({ action: 'bus', ids: ids, event: event }); + for (var serverid in obj.peerServers) { obj.peerServers[serverid].send(busmsg); } } - // Handle websocket requests on "/meshserver.ashx" from other MeshCentral2 peer servers. - obj.handleServerWebSocket = function (ws, req) { - Debug(1, 'MeshServer connection open.'); + // Dispatch a message to other MeshCentral2 peer servers + obj.DispatchMessage = function (msg) { + for (var serverid in obj.peerServers) { obj.peerServers[serverid].send(msg); } + } - // Handle data from another mesh server - ws.on('message', function (msg) { - Debug(1, 'MeshServer data of length ' + msg.length); - // TODO - }); + // Attempt to connect to all peers + obj.ConnectToPeers = function () { + for (serverId in obj.peerConfig.servers) { + // We will only connect to names that are larger then ours. This way, eveyone has one connection to everyone else (no cross-connections). + if ((serverId > obj.peerConfig.serverId) && (obj.peerConfig.servers[serverId].url != null) && (obj.outPeerServers[serverId] == null)) { + obj.outPeerServers[serverId] = obj.CreatePeerOutServer(obj, serverId, obj.peerConfig.servers[serverId].url); + } + } + } - // If error, do nothing - ws.on('error', function (err) { console.log(err); }); + // We connected to a peer server, setup everything + obj.SetupPeerServer = function (server, peerServerId) { + console.log('Connected to peer server ' + peerServerId + '.'); + obj.peerServers[peerServerId] = server; + server.send(JSON.stringify({ action: 'connectivityTable', connectivityTable: obj.parent.peerConnectivityByNode[obj.parent.serverId] })); + } - // Another mesh server connection has closed - ws.on('close', function (req) { - Debug(1, 'MeshServer connection closed.'); - // TODO - }); + // We disconnected to a peer server, clean up everything + obj.ClearPeerServer = function (server, peerServerId) { + console.log('Disconnected from peer server ' + peerServerId + '.'); + delete obj.peerServers[peerServerId]; + //delete obj.parent.peerConnectivityByMesh[peerServerId]; // TODO: We will need to re-adjust all of the node power states. + var oldList = obj.parent.peerConnectivityByNode[peerServerId]; + obj.parent.peerConnectivityByNode[peerServerId] = {}; + obj.parent.UpdateConnectivityState(oldList); + } + + // Process a message coming from a peer server + obj.ProcessPeerServerMessage = function (server, peerServerId, msg) { + //console.log('ProcessPeerServerMessage', peerServerId, msg.action, typeof msg, msg); + switch (msg.action) { + case 'bus': { + obj.parent.DispatchEvent(msg.ids, null, msg.event, true); // Dispatch the peer event + break; + } + case 'connectivityTable': { + obj.parent.peerConnectivityByNode[peerServerId] = msg.connectivityTable; + obj.parent.UpdateConnectivityState(msg.connectivityTable); + break; + } + case 'SetConnectivityState': { + obj.parent.SetConnectivityState(msg.meshid, msg.nodeid, msg.connectTime, msg.connectType, msg.powerState, peerServerId); + break; + } + case 'ClearConnectivityState': { + obj.parent.ClearConnectivityState(msg.meshid, msg.nodeid, msg.connectType, peerServerId); + break; + } + } } obj.serverKey = obj.generateCookieKey(); + setTimeout(function () { obj.ConnectToPeers(); }, 1000); // Delay this a little to make sure we are ready on our side. return obj; } diff --git a/package.json b/package.json index b9ca4891..53f0dab4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.0.7-p", + "version": "0.0.7-u", "keywords": [ "Remote Management", "Intel AMT", @@ -25,7 +25,6 @@ "bin" ], "dependencies": { - "meshcentral": "*", "archiver": "^1.3.0", "body-parser": "^1.17.1", "compression": "^1.6.2", @@ -34,11 +33,13 @@ "express-handlebars": "^3.0.0", "express-session": "^1.15.1", "express-ws": "^2.0.0", + "meshcentral": "*", "minimist": "^1.2.0", "multiparty": "^4.1.3", "nedb": "^1.8.0", "node-forge": "^0.6.49", "unzip": "^0.1.11", + "websocket": "^1.0.24", "xmldom": "^0.1.27" }, "optionalDependencies": { diff --git a/public/commander.htm b/public/commander.htm index 27620047..71a3fff6 100644 --- a/public/commander.htm +++ b/public/commander.htm @@ -340,13 +340,13 @@ th {
-