diff --git a/views/default.handlebars b/views/default.handlebars index e7672d47..1218f441 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -17503,7 +17503,7 @@ if (rec.meshname) { x += addHtmlValue4("Device Group", EscapeHtml(rec.meshname)); } if (rec.size) { x += addHtmlValue4("Size", format("{0} bytes", rec.size)); } if (rec.startTime) { x += addHtmlValue4("Start Time", printTime(new Date(rec.startTime))); } - if (rec.time) { x += addHtmlValue4("End Time", printTime(new Date(rec.time))); } + if (rec.startTime && rec.lengthTime) { x += addHtmlValue4("End Time", printTime(new Date(rec.startTime + (rec.lengthTime * 1000)))); } if (rec.lengthTime) { x += addHtmlValue4("Duration", pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60))); } if (rec.multiplex == true) { x += addHtmlValue4("Multiplexor", "Enabled"); } if (rec.userids) { for (var i in rec.userids) { x += addHtmlValue4("User", rec.userids[i].split('/')[2]); } } diff --git a/views/default3.handlebars b/views/default3.handlebars index 8de5162d..986c048a 100644 --- a/views/default3.handlebars +++ b/views/default3.handlebars @@ -18769,7 +18769,7 @@ if (rec.meshname) { x += addHtmlValue4("Device Group", EscapeHtml(rec.meshname)); } if (rec.size) { x += addHtmlValue4("Size", format("{0} bytes", rec.size)); } if (rec.startTime) { x += addHtmlValue4("Start Time", printTime(new Date(rec.startTime))); } - if (rec.time) { x += addHtmlValue4("End Time", printTime(new Date(rec.time))); } + if (rec.startTime && rec.lengthTime) { x += addHtmlValue4("End Time", printTime(new Date(rec.startTime + (rec.lengthTime * 1000)))); } if (rec.lengthTime) { x += addHtmlValue4("Duration", pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60))); } if (rec.multiplex == true) { x += addHtmlValue4("Multiplexor", "Enabled"); } if (rec.userids) { for (var i in rec.userids) { x += addHtmlValue4("User", rec.userids[i].split('/')[2]); } } diff --git a/webserver.js b/webserver.js index 12085466..e09383b2 100644 --- a/webserver.js +++ b/webserver.js @@ -4953,12 +4953,12 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF // Log the disconnection if (ws.time) { - var msg = 'Ended relay session', msgid = 9, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); - var nodeid = node._id; - var meshid = node.meshid; - if (user) { - var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: ((req.query.p == 2) ? 101 : 100), nodeid: nodeid }; - obj.parent.DispatchEvent(['*', user._id, nodeid, meshid], obj, event); + if (req.query.p == 2) { // Only log event if Intel Redirection, otherwise hundreds of logs for WSMAN are recorded + var msg = 'Ended relay session', msgid = 9, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); + if (user) { + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: 101, nodeid: node._id }; + obj.parent.DispatchEvent(['*', user._id, node._id, node.meshid], obj, event); + } } } @@ -4978,7 +4978,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF parent.debug('relay', 'Relay: Finished recording to file: ' + ws.logfile.filename); // Compute session length var sessionLength = null; - if (ws.logfile.startTime != null) { sessionLength = Math.round((Date.now() - ws.logfile.startTime) / 1000); } + if (ws.logfile.startTime != null) { sessionLength = Math.round((Date.now() - ws.logfile.startTime) / 1000) - 5; } // Add a event entry about this recording var basefile = parent.path.basename(ws.logfile.filename); var event = { etype: 'relay', action: 'recording', domain: domain.id, nodeid: ws.logfile.nodeid, msg: "Finished recording session" + (sessionLength ? (', ' + sessionLength + ' second(s)') : ''), filename: basefile, size: ws.logfile.size }; @@ -5028,7 +5028,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF parent.debug('relay', 'Relay1: Finished recording to file: ' + ws.logfile.filename); // Compute session length var sessionLength = null; - if (ws.logfile.startTime != null) { sessionLength = Math.round((Date.now() - ws.logfile.startTime) / 1000); } + if (ws.logfile.startTime != null) { sessionLength = Math.round((Date.now() - ws.logfile.startTime) / 1000) - 5; } // Add a event entry about this recording var basefile = parent.path.basename(ws.logfile.filename); var event = { etype: 'relay', action: 'recording', domain: domain.id, nodeid: ws.logfile.nodeid, msg: "Finished recording session" + (sessionLength ? (', ' + sessionLength + ' second(s)') : ''), filename: basefile, size: ws.logfile.size }; @@ -5087,11 +5087,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF // Log the disconnection if (ws.time) { var msg = 'Ended relay session', msgid = 9, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); - var nodeid = node._id; - var meshid = node.meshid; if (user) { - var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: ((req.query.p == 2) ? 101 : 100), nodeid: nodeid }; - obj.parent.DispatchEvent(['*', user._id, nodeid, meshid], obj, event); + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: ((req.query.p == 2) ? 101 : 100), nodeid: node._id }; + obj.parent.DispatchEvent(['*', user._id, node._id, node.meshid], obj, event); } } if (ws.forwardclient) { try { ws.forwardclient.destroy(); } catch (e) { } } @@ -5129,11 +5127,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF // Log the disconnection if (ws.time) { var msg = 'Ended relay session', msgid = 9, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); - var nodeid = node._id; - var meshid = node.meshid; if (user) { - var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: ((req.query.p == 2) ? 101 : 100), nodeid: nodeid }; - obj.parent.DispatchEvent(['*', user._id, nodeid, meshid], obj, event); + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip, Math.floor((Date.now() - ws.time) / 1000)], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip + ', ' + Math.floor((Date.now() - ws.time) / 1000) + ' second(s)', protocol: ((req.query.p == 2) ? 101 : 100), nodeid: node._id }; + obj.parent.DispatchEvent(['*', user._id, node._id, node.meshid], obj, event); } } if (ws.forwardclient) { try { ws.forwardclient.destroy(); } catch (e) { } } @@ -5237,9 +5233,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF // Log the connection if (user != null) { - var msg = 'Started relay session', msgid = 13, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); - var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip], msg: msg + ' \"' + obj.id + '\" from ' + req.clientIp + ' to ' + ip, protocol: ((req.query.p == 2) ? 101 : 100), nodeid: node._id }; - obj.parent.DispatchEvent(['*', user._id], obj, event); + if (req.query.p == 2) { // Only log event if Intel Redirection, otherwise hundreds of logs for WSMAN are recorded + var msg = 'Started relay session', msgid = 13, ip = ((ciraconn != null) ? ciraconn.remoteAddr : (((conn & 4) != 0) ? node.host : req.clientIp)); + var event = { etype: 'relay', action: 'relaylog', domain: domain.id, userid: user._id, username: user.name, msgid: msgid, msgArgs: [ws.id, req.clientIp, ip], msg: msg + ' \"' + ws.id + '\" from ' + req.clientIp + ' to ' + ip, protocol: 101, nodeid: node._id }; + obj.parent.DispatchEvent(['*', user._id], obj, event); + } // Update user last access time if ((user != null)) {