Fixed missing relay event logging.

Ylian Saint-Hilaire committed Aug 1, 2019 at 15:44 UTC e67a7e9886fa915f9566690ea8c35ead319c6606
2 files changed +12 -4
meshrelay.js
+11 -3
@@ -171,6 +171,9 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
171 if (user) {
172 var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: parent.users[user._id].name, msg: 'Started relay session \"' + obj.id + '\" from ' + cleanRemoteAddr(obj.peer.ws._socket.remoteAddress) + ' to ' + cleanRemoteAddr(ws._socket.remoteAddress) };
173 parent.parent.DispatchEvent(['*', user._id], obj, event);
174 + } else if (obj.peer.user) {
175 + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: obj.peer.user._id, username: parent.users[obj.peer.user._id].name, msg: 'Started relay session \"' + obj.id + '\" from ' + cleanRemoteAddr(obj.peer.ws._socket.remoteAddress) + ' to ' + cleanRemoteAddr(ws._socket.remoteAddress) };
176 + parent.parent.DispatchEvent(['*', obj.peer.user._id], obj, event);
177 }
178 } else {
179 // Connected already, drop (TODO: maybe we should re-connect?)
@@ -245,9 +248,14 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
248 try { peer.ws._socket._parent.end(); } catch (e) { } // Hard disconnect
249
250 // Log the disconnection
248 - if (user && ws.time) {
249 - var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: parent.users[user._id].name, msg: 'Ended relay session \"' + obj.id + '\" from ' + cleanRemoteAddr(obj.peer.ws._socket.remoteAddress) + ' to ' + cleanRemoteAddr(ws._socket.remoteAddress) + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)' };
250 - parent.parent.DispatchEvent(['*', user._id], obj, event);
251 + if (ws.time) {
252 + if (user) {
253 + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: parent.users[user._id].name, msg: 'Ended relay session \"' + obj.id + '\" from ' + cleanRemoteAddr(obj.peer.ws._socket.remoteAddress) + ' to ' + cleanRemoteAddr(ws._socket.remoteAddress) + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)' };
254 + parent.parent.DispatchEvent(['*', user._id], obj, event);
255 + } else if (peer.user) {
256 + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: peer.user._id, username: parent.users[peer.user._id].name, msg: 'Ended relay session \"' + obj.id + '\" from ' + cleanRemoteAddr(obj.peer.ws._socket.remoteAddress) + ' to ' + cleanRemoteAddr(ws._socket.remoteAddress) + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)' };
257 + parent.parent.DispatchEvent(['*', peer.user._id], obj, event);
258 + }
259 }
260
261 // Aggressive peer cleanup
package.json
+1 -1
@@ -1,6 +1,6 @@
1 {
2 "name": "meshcentral",
3 - "version": "0.3.9-a",
3 + "version": "0.3.9-b",
4 "keywords": [
5 "Remote Management",
6 "Intel AMT",