logswan

Fast Web log analyzer using probabilistic data structures
Log | Files | Refs | README | LICENSE

commit f2285ab285f5e9102b2554c28ca28c237902e810
parent 1a96c86f79d76ceab52a096a90df923cf922d0e0
Author: Frederic Cambus <fcambus@users.sourceforge.net>
Date:   Thu, 25 Jun 2015 00:10:35 +0200

Using 'strtonum' to populate the status code array

Diffstat:
Msrc/logswan.c | 4++--
Msrc/results.h | 4+++-
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/logswan.c b/src/logswan.c @@ -124,9 +124,9 @@ int main (int argc, char *argv[]) { /* Count HTTP status codes occurences */ if (parsedLine.statusCode) { /* Do not feed NULL tokens to strtol */ - statusCode = strtol(parsedLine.statusCode, &endptr, 10); + statusCode = strtonum(parsedLine.statusCode, 0, STATUS_CODE_MAX-1, &errstr); - if (statusCode < 512) { + if (!errstr) { results.httpStatus[statusCode] ++; } } diff --git a/src/results.h b/src/results.h @@ -14,6 +14,8 @@ #ifndef RESULTS_H #define RESULTS_H +#define STATUS_CODE_MAX 512 + struct results { uint64_t fileSize; uint64_t invalidLines; @@ -24,7 +26,7 @@ struct results { uint64_t hitsIPv6; uint64_t countries[255]; int hours[24]; - int httpStatus[512]; + int httpStatus[STATUS_CODE_MAX]; double runtime; char timeStamp[20]; };