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;