fix start and end times for recordings
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Apr 16, 2025 at 18:07 UTC
1cd2bb26f07251d903943c4efcd58c3381af6a7b
3 files changed
+10
-10
meshrelay.js
+6
-6
@@ -90,7 +90,7 @@ function recordingEntry (logfile, type, flags, data, func, tag) {
90
out = data + '\r\n' + utcDate.toUTCString() + ', ' + "<<<START>>>" + '\r\n';
91
} else if (type == 3) {
92
// End of log
93
- out = utcDate.toUTCString() + ', ' + "<<<END>>>" + '\r\n';
93
+ out = new Date(Date.now() - 5000).toUTCString() + ', ' + "<<<END>>>" + '\r\n';
94
} else if (typeof data == 'string') {
95
// Log message
96
if (logfile.text == 1) {
@@ -121,20 +121,20 @@ function recordingEntry (logfile, type, flags, data, func, tag) {
121
if (typeof data == 'string') {
122
// String write
123
var blockData = Buffer.from(data), header = Buffer.alloc(16); // Header: Type (2) + Flags (2) + Size(4) + Time(8)
124
- header.writeInt16BE(type, 0); // Type (1 = Header, 2 = Network Data)
124
+ header.writeInt16BE(type, 0); // Type (1 = Start, 2 = Network Data, 3 = End)
125
header.writeInt16BE(flags, 2); // Flags (1 = Binary, 2 = User)
126
header.writeInt32BE(blockData.length, 4); // Size
127
- header.writeIntBE(new Date(), 10, 6); // Time
127
+ header.writeIntBE((type == 3 ? new Date(Date.now() - 5000) : new Date()), 10, 6); // Time
128
var block = Buffer.concat([header, blockData]);
129
require('fs').write(logfile.fd, block, 0, block.length, function () { func(logfile, tag); });
130
logfile.size += block.length;
131
} else {
132
// Binary write
133
var header = Buffer.alloc(16); // Header: Type (2) + Flags (2) + Size(4) + Time(8)
134
- header.writeInt16BE(type, 0); // Type (1 = Header, 2 = Network Data)
134
+ header.writeInt16BE(type, 0); // Type (1 = Start, 2 = Network Data)
135
header.writeInt16BE(flags | 1, 2); // Flags (1 = Binary, 2 = User)
136
header.writeInt32BE(data.length, 4); // Size
137
- header.writeIntBE(new Date(), 10, 6); // Time
137
+ header.writeIntBE((type == 3 ? new Date(Date.now() - 5000) : new Date()), 10, 6); // Time
138
var block = Buffer.concat([header, data]);
139
require('fs').write(logfile.fd, block, 0, block.length, function () { func(logfile, tag); });
140
logfile.size += block.length;
@@ -824,7 +824,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) {
824
825
// Compute session length
826
var sessionLength = null;
827
- if (tag.logfile.startTime != null) { sessionLength = Math.round((Date.now() - tag.logfile.startTime) / 1000); }
827
+ if (tag.logfile.startTime != null) { sessionLength = Math.round((Date.now() - tag.logfile.startTime) / 1000) - 5; }
828
829
// Add a event entry about this recording
830
var basefile = parent.parent.path.basename(tag.logfile.filename);
views/default.handlebars
+2
-2
@@ -17415,7 +17415,7 @@
17415
if (p52recordings != null) {
17416
var recdate = null;
17417
for (var i in p52recordings) {
17418
- var rec = p52recordings[i], rect = new Date(rec.time), day = printDate(rect);
17418
+ var rec = p52recordings[i], rect = new Date(rec.startTime), day = printDate(rect);
17419
if (day != recdate) { recdate = day; x += '<tr><td class=userTableHeader colspan=4>' + day; }
17420
x += addRecordingHtml(i, rec);
17421
}
@@ -17433,7 +17433,7 @@
17433
function addRecordingHtml(i, rec) {
17434
var sessionLengthStr = '';
17435
if (rec.lengthTime) { sessionLengthStr = pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60)); }
17436
- var sessionStartStr = printTime(new Date(rec.time));
17436
+ var sessionStartStr = printTime(new Date(rec.startTime));
17437
if (rec.sessionStart) { sessionStartStr = printTime(new Date(rec.sessionStart)); }
17438
var sessionSize = '';
17439
if (rec.size) { sessionSize = format("{0} Kb", Math.round(rec.size / 1024)); }
views/default3.handlebars
+2
-2
@@ -18681,7 +18681,7 @@
18681
if (p52recordings != null) {
18682
var recdate = null;
18683
for (var i in p52recordings) {
18684
- var rec = p52recordings[i], rect = new Date(rec.time), day = printDate(rect);
18684
+ var rec = p52recordings[i], rect = new Date(rec.startTime), day = printDate(rect);
18685
if (day != recdate) { recdate = day; x += '<tr><td class=userTableHeader colspan=4>' + day; }
18686
x += addRecordingHtml(i, rec);
18687
}
@@ -18699,7 +18699,7 @@
18699
function addRecordingHtml(i, rec) {
18700
var sessionLengthStr = '';
18701
if (rec.lengthTime) { sessionLengthStr = pad2(Math.floor(rec.lengthTime / 3600)) + ':' + pad2(Math.floor((rec.lengthTime % 3600) / 60)) + ':' + pad2(Math.floor(rec.lengthTime % 60)); }
18702
- var sessionStartStr = printTime(new Date(rec.time));
18702
+ var sessionStartStr = printTime(new Date(rec.startTime));
18703
if (rec.sessionStart) { sessionStartStr = printTime(new Date(rec.sessionStart)); }
18704
var sessionSize = '';
18705
if (rec.size) { sessionSize = format("{0} Kb", Math.round(rec.size / 1024)); }