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",