Added relay session count.

Ylian Saint-Hilaire committed Feb 18, 2019 at 17:14 UTC 3446ddc61110399c82b9e26119343280699458b6
3 files changed +14 -1
meshrelay.js
+3
@@ -25,6 +25,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
25 obj.remoteaddr = obj.ws._socket.remoteAddress;
26 obj.domain = domain;
27 if (obj.remoteaddr.startsWith('::ffff:')) { obj.remoteaddr = obj.remoteaddr.substring(7); }
28 + obj.parent.relaySessionCount++;
29
30 // Mesh Rights
31 const MESHRIGHT_EDITMESH = 1;
@@ -193,12 +194,14 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
194
195 // If error, close both sides of the relay.
196 ws.on('error', function (err) {
197 + obj.parent.relaySessionErrorCount++;
198 console.log('Relay error from ' + obj.remoteaddr + ', ' + err.toString().split('\r')[0] + '.');
199 closeBothSides();
200 });
201
202 // If the relay web socket is closed, close both sides.
203 ws.on('close', function (req) {
204 + obj.parent.relaySessionCount--;
205 closeBothSides();
206 });
207
meshuser.js
+9 -1
@@ -181,7 +181,15 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
181 var os = require('os');
182 var stats = { action: 'serverstats', totalmem: os.totalmem(), freemem: os.freemem() };
183 if (obj.parent.parent.platform != 'win32') { stats.cpuavg = os.loadavg(); } // else { stats.cpuavg = [ 0.2435345, 0.523234234, 0.6435345345 ]; }
184 - var serverStats = { "User Accounts": Object.keys(obj.parent.users).length, "Device Groups": Object.keys(obj.parent.meshes).length, "Agent Sessions": Object.keys(obj.parent.wsagents).length, "Connected Users": Object.keys(obj.parent.wssessions).length, "Users Sessions": Object.keys(obj.parent.wssessions2).length };
184 + var serverStats = {
185 + "User Accounts": Object.keys(obj.parent.users).length,
186 + "Device Groups": Object.keys(obj.parent.meshes).length,
187 + "Agent Sessions": Object.keys(obj.parent.wsagents).length,
188 + "Connected Users": Object.keys(obj.parent.wssessions).length,
189 + "Users Sessions": Object.keys(obj.parent.wssessions2).length,
190 + "Relay Sessions": obj.parent.relaySessionCount,
191 + "Relay Errors": obj.parent.relaySessionErrorCount
192 + };
193 if (obj.parent.parent.mpsserver != null) { serverStats['Connected Intel® AMT'] = Object.keys(obj.parent.parent.mpsserver.ciraConnections).length; }
194 stats.values = { "Server State": serverStats }
195 try { ws.send(JSON.stringify(stats)); } catch (ex) { }
webserver.js
+2
@@ -78,6 +78,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
78 obj.agentBlockedIp = args.agentblockedip; // List of blocked IP addresses for agents
79 obj.tlsSniCredentials = null;
80 obj.dnsDomains = {};
81 + obj.relaySessionCount = 0;
82 + obj.relaySessionErrorCount = 0;
83
84 // Mesh Rights
85 const MESHRIGHT_EDITMESH = 1;