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:
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];
};