Fixed agent log parsing bug
Bryan Roe committed
Apr 22, 2021 at 15:00 UTC
a5053b17e51551d7c9b23b05c207256017723017
1 file changed
+19
-3
agents/modules_meshcore/util-agentlog.js
+19
-3
@@ -109,10 +109,24 @@ function parseLine(entry)
109
110
function readLog_data(buffer)
111
{
112
- var lines = buffer.toString().split('\n');
113
- while(lines.length > 0)
112
+ var lines = buffer.toString();
113
+ if (this.buffered != null) { lines = this.buffered + lines; }
114
+ lines = lines.split('\n');
115
+ var i;
116
+
117
+ for (i = 0; i < (lines.length - 1) ; ++i)
118
+ {
119
+ parseLine.call(this, lines[i]);
120
+ }
121
+
122
+ if (lines.length == 1)
123
+ {
124
+ parseLine.call(this, lines[0]);
125
+ this.buffered = null;
126
+ }
127
+ else
128
{
115
- parseLine.call(this, lines.shift());
129
+ this.buffered = lines[lines.length - 1];
130
}
131
}
132
@@ -122,9 +136,11 @@ function readLogEx(path)
136
try
137
{
138
var s = require('fs').createReadStream(path);
139
+ s.buffered = null;
140
s.results = ret;
141
s.on('data', readLog_data);
142
s.resume();
143
+ if (s.buffered != null) { readLog_data.call(s, s.buffered); s.buffered = null; }
144
s.removeAllListeners('data');
145
s = null;
146
}