From f80b43be84f51511d3f502726f811b3b5892c5ed Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Thu, 21 Aug 2014 12:53:44 +0200 Subject: [PATCH] zscanner: improve error codes --- src/zscanner/error.c | 4 +++- src/zscanner/error.h | 5 +++-- src/zscanner/scanner.c.g2 | 12 ++++++++---- src/zscanner/scanner.c.t0 | 12 ++++++++---- src/zscanner/scanner.rl | 12 ++++++++---- src/zscanner/tests/data/06-3_INCLUDE.out | 2 +- 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/zscanner/error.c b/src/zscanner/error.c index 9f65d7066..ccc430757 100644 --- a/src/zscanner/error.c +++ b/src/zscanner/error.c @@ -29,13 +29,15 @@ typedef struct { const err_table_t err_msgs[] = { ERR_ITEM( ZS_OK, "ok" ), + ERR_ITEM( ZS_SYSTEM, + "system error" ), ERR_ITEM( ZS_FILE_OPEN, "file open error" ), ERR_ITEM( ZS_FILE_PATH, "file path error" ), ERR_ITEM( ZS_FILE_FSTAT, "fstat error" ), - ERR_ITEM( ZS_FILE_DIRECTORY, + ERR_ITEM( ZS_FILE_DIR, "not zone file but directory" ), ERR_ITEM( ZS_FILE_MMAP, "file mmap error" ), diff --git a/src/zscanner/error.h b/src/zscanner/error.h index 74f98dcdf..247bcea31 100644 --- a/src/zscanner/error.h +++ b/src/zscanner/error.h @@ -27,10 +27,11 @@ enum err_codes { ZS_OK = 0, - ZS_FILE_OPEN = -1000, + ZS_SYSTEM = -1000, + ZS_FILE_OPEN, ZS_FILE_PATH, ZS_FILE_FSTAT, - ZS_FILE_DIRECTORY, + ZS_FILE_DIR, ZS_FILE_MMAP, ZS_DOS_NEWLINE, ZS_UNCOVERED_STATE, diff --git a/src/zscanner/scanner.c.g2 b/src/zscanner/scanner.c.g2 index 9cee51c9a..1814ab635 100644 --- a/src/zscanner/scanner.c.g2 +++ b/src/zscanner/scanner.c.g2 @@ -73109,6 +73109,13 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } + // Getting OS page size. + page_size = sysconf(_SC_PAGESIZE); + if (page_size <= 0) { + ERR(ZS_SYSTEM); + return -1; + } + // Copying file name. s->file.name = strdup(file_name); @@ -73133,9 +73140,6 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } - // Getting OS page size. - page_size = sysconf(_SC_PAGESIZE); - // Getting file information. if (fstat(s->file.descriptor, &file_stat) == -1) { ERR(ZS_FILE_FSTAT); @@ -73146,7 +73150,7 @@ int zs_scanner_parse_file(zs_scanner_t *s, // Check for directory. if (S_ISDIR(file_stat.st_mode)) { - ERR(ZS_FILE_DIRECTORY); + ERR(ZS_FILE_DIR); close(s->file.descriptor); free(s->file.name); return -1; diff --git a/src/zscanner/scanner.c.t0 b/src/zscanner/scanner.c.t0 index b6d6f4de8..1b6e8248b 100644 --- a/src/zscanner/scanner.c.t0 +++ b/src/zscanner/scanner.c.t0 @@ -7430,6 +7430,13 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } + // Getting OS page size. + page_size = sysconf(_SC_PAGESIZE); + if (page_size <= 0) { + ERR(ZS_SYSTEM); + return -1; + } + // Copying file name. s->file.name = strdup(file_name); @@ -7454,9 +7461,6 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } - // Getting OS page size. - page_size = sysconf(_SC_PAGESIZE); - // Getting file information. if (fstat(s->file.descriptor, &file_stat) == -1) { ERR(ZS_FILE_FSTAT); @@ -7467,7 +7471,7 @@ int zs_scanner_parse_file(zs_scanner_t *s, // Check for directory. if (S_ISDIR(file_stat.st_mode)) { - ERR(ZS_FILE_DIRECTORY); + ERR(ZS_FILE_DIR); close(s->file.descriptor); free(s->file.name); return -1; diff --git a/src/zscanner/scanner.rl b/src/zscanner/scanner.rl index e85d1b086..3a36dd4b3 100644 --- a/src/zscanner/scanner.rl +++ b/src/zscanner/scanner.rl @@ -277,6 +277,13 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } + // Getting OS page size. + page_size = sysconf(_SC_PAGESIZE); + if (page_size <= 0) { + ERR(ZS_SYSTEM); + return -1; + } + // Copying file name. s->file.name = strdup(file_name); @@ -301,9 +308,6 @@ int zs_scanner_parse_file(zs_scanner_t *s, return -1; } - // Getting OS page size. - page_size = sysconf(_SC_PAGESIZE); - // Getting file information. if (fstat(s->file.descriptor, &file_stat) == -1) { ERR(ZS_FILE_FSTAT); @@ -314,7 +318,7 @@ int zs_scanner_parse_file(zs_scanner_t *s, // Check for directory. if (S_ISDIR(file_stat.st_mode)) { - ERR(ZS_FILE_DIRECTORY); + ERR(ZS_FILE_DIR); close(s->file.descriptor); free(s->file.name); return -1; diff --git a/src/zscanner/tests/data/06-3_INCLUDE.out b/src/zscanner/tests/data/06-3_INCLUDE.out index 8a5289b0b..ce2cc2527 100644 --- a/src/zscanner/tests/data/06-3_INCLUDE.out +++ b/src/zscanner/tests/data/06-3_INCLUDE.out @@ -1,2 +1,2 @@ -ERROR=ZS_FILE_DIRECTORY +ERROR=ZS_FILE_DIR ------ -- GitLab