This is an automated email from the ASF dual-hosted git repository.
bcall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new ce30c21 Add validation of fields in logfile for traffic_logstats
ce30c21 is described below
commit ce30c2140b0583ff40a22bca73be66d17c32ad1a
Author: Bryan Call <[email protected]>
AuthorDate: Thu Jun 21 16:55:33 2018 -0700
Add validation of fields in logfile for traffic_logstats
---
src/traffic_logstats/logstats.cc | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/traffic_logstats/logstats.cc b/src/traffic_logstats/logstats.cc
index 9786c09..76bacdf 100644
--- a/src/traffic_logstats/logstats.cc
+++ b/src/traffic_logstats/logstats.cc
@@ -56,6 +56,7 @@
#include <fcntl.h>
#include <unordered_map>
#include <unordered_set>
+#include <string_view>
#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 600
@@ -1253,7 +1254,7 @@ parse_log_buff(LogBufferHeader *buf_header, bool summary
= false, bool aggregate
LogEntryHeader *entry;
LogBufferIterator buf_iter(buf_header);
- LogField *field;
+ LogField *field = nullptr;
ParseStates state;
char *read_from;
@@ -1275,6 +1276,18 @@ parse_log_buff(LogBufferHeader *buf_header, bool summary
= false, bool aggregate
bool agg = false;
LogFormat::parse_symbol_string(buf_header->fmt_fieldlist(), fieldlist,
&agg);
}
+
+ // Validate the fieldlist
+ field = fieldlist->first();
+ const std::string_view test_fields[] = {"cqtq", "ttms", "chi", "crc",
"pssc", "psql", "cqhm", "cquc", "caun", "phr", "pqsn"};
+ for (auto i : test_fields) {
+ if (i != field->symbol()) {
+ cerr << "Error parsing log file - expected field: " << i << ", but read
field: " << field->symbol() << endl;
+ return 1;
+ }
+ field = fieldlist->next(field);
+ }
+
// Loop over all entries
while ((entry = buf_iter.next())) {
read_from = (char *)entry + sizeof(LogEntryHeader);