diff options
Diffstat (limited to 'contrib/ipfilter/lib/load_file.c')
-rw-r--r-- | contrib/ipfilter/lib/load_file.c | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/contrib/ipfilter/lib/load_file.c b/contrib/ipfilter/lib/load_file.c deleted file mode 100644 index 9bb3899..0000000 --- a/contrib/ipfilter/lib/load_file.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2006 by Darren Reed. - * - * See the IPFILTER.LICENCE file for details on licencing. - * - * $Id: load_file.c,v 1.1.2.1 2006/08/25 21:13:04 darrenr Exp $ - */ - -#include "ipf.h" - -alist_t * -load_file(char *filename) -{ - alist_t *a, *rtop, *rbot; - char *s, line[1024], *t; - int linenum, not; - FILE *fp; - - fp = fopen(filename + 7, "r"); - if (fp == NULL) { - fprintf(stderr, "load_file cannot open '%s'\n", filename); - return NULL; - } - - a = NULL; - rtop = NULL; - rbot = NULL; - linenum = 0; - - while (fgets(line, sizeof(line) - 1, fp)) { - line[sizeof(line) - 1] = '\0'; - linenum++; - /* - * Hunt for CR/LF. If no LF, stop processing. - */ - s = strchr(line, '\n'); - if (s == NULL) { - fprintf(stderr, "%d:%s: line too long\n", linenum, filename); - fclose(fp); - alist_free(rtop); - return NULL; - } - - *s = '\0'; - s = strchr(line, '\r'); - if (s != NULL) - *s = '\0'; - for (t = line; isspace(*t); t++) - ; - if (*t == '!') { - not = 1; - t++; - } else - not = 0; - - /* - * Remove comment markers - */ - for (s = t; *s; s++) { - if (*s == '#') - *s = '\0'; - } - if (!*t) - continue; - /* - * Trim off tailing white spaces - */ - s = strlen(t) + t - 1; - while (isspace(*s)) - *s-- = '\0'; - - if (isdigit(*t)) { - a = alist_new(4, t); - a->al_not = not; - if (rbot != NULL) - rbot->al_next = a; - else - rtop = a; - rbot = a; - } else { - fprintf(stderr, "%s: unrecognised content line %d\n", - filename, linenum); - } - } - fclose(fp); - - return rtop; -} |