summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--main.c27
-rwxr-xr-xmain.sh2
-rw-r--r--meson.build2
3 files changed, 13 insertions, 18 deletions
diff --git a/main.c b/main.c

index d94c50d..0feacdc 100644 --- a/main.c +++ b/main.c
@@ -305,11 +305,11 @@ void process_line(char* line, void* cbData) if (check_already_banned_ip) for (size_t j = 0; j < rules->banned_ip_count; j++) { - if (strlen(rules->banned_ips[j]) < 5) + if (strlen(rules->banned_ips[j]) < 2) { for (size_t k = 0; k < rules->banned_ip_count; k++) { - printf("rules->banned_ips[%lu] = \"%s\" (#%s)\n", k, rules->banned_ips[k], str_to_hex(rules->banned_ips[k])); + printf("rules->banned_ips[%lu] = \"%s\" (#%s) x %d\n", k, rules->banned_ips[k], str_to_hex(rules->banned_ips[k]), rules->banned_ip_hits[k * sizeof(int)]); } printf("ASSERT: Broken rule #%lu: \"%s\" (#%s)\n", j, rules->banned_ips[j], str_to_hex(rules->banned_ips[j])); abort(); @@ -327,6 +327,9 @@ void process_line(char* line, void* cbData) abort(); } + rules->banned_ip_hits[j * sizeof(int)]++; + fprintf(stderr, "DBG CHK: %s -> %d hits\n", rules->banned_ips[j], rules->banned_ip_hits[j * sizeof(int)]); + free(ip); return; } @@ -354,12 +357,11 @@ void process_line(char* line, void* cbData) rules->banned_ip_hits = grow_int_array(rules->banned_ip_hits, rules->banned_ip_size); } - rules->banned_ips[rules->banned_ip_count][strcspn(rules->banned_ips[rules->banned_ip_count], "\n")] = 0; - rules->banned_ips[rules->banned_ip_count + 1] = nullptr; rules->banned_ips[rules->banned_ip_count] = ip; - rules->banned_ip_hits[rules->banned_ip_count]++; - fprintf(stderr, "DBG: %s -> %d hits\n", rules->banned_ips[rules->banned_ip_count], rules->banned_ip_hits[rules->banned_ip_count]); + rules->banned_ip_hits[rules->banned_ip_count * sizeof(int)] = 1; + fprintf(stderr, "DBG PTN: %s -> %d hits\n", rules->banned_ips[rules->banned_ip_count], rules->banned_ip_hits[rules->banned_ip_count * sizeof(int)]); rules->banned_ip_count++; + if (print_bans) printf("[Bans=%6lu] %15s matched pattern %4d (\"%s\"): %s\n", rules->banned_ip_count, ip, i, rules->patterns[i], line); @@ -502,8 +504,8 @@ int main(int argc, char* argv[]) rules.allowed_ips = read_lines(allowed_ips_path); rules.banned_ip_size = 8; rules.banned_ip_count = 0; - rules.banned_ips = xmalloc(sizeof(char**) * rules.banned_ip_size); - rules.banned_ip_hits = xmalloc(sizeof(int*) * rules.banned_ip_size); + rules.banned_ips = xmalloc(rules.banned_ip_size * sizeof(char**)); + rules.banned_ip_hits = xmalloc(rules.banned_ip_size * sizeof(int)); //rules.bannedIps[0] = ; if (dump_patterns) @@ -531,14 +533,7 @@ int main(int argc, char* argv[]) for (int i = 0; i < rules.banned_ip_count; i++) { printf("[BAN %4d] %s: %d hits\n", i, rules.banned_ips[i], rules.banned_ip_hits[i * sizeof(int)]); - free(rules.banned_ips[i]); } - // for (int i = 0; rules.banned_ips[i] != NULL; i++) - // { - // printf("[BANNED IP %4d] %s\n", i, rules.banned_ips[i]); - // free(rules.banned_ips[i]); - // } - free(rules.banned_ips); for (int i = 0; rules.patterns[i] != NULL; i++) { @@ -546,7 +541,7 @@ int main(int argc, char* argv[]) } free(rules.patterns); free(rules.allowed_ips); - for (int i = 0; rules.banned_ips[i] != NULL; i++) + for (int i = 0; i < rules.banned_ip_count; i++) { free(rules.banned_ips[i]); } diff --git a/main.sh b/main.sh
index efdcf2a..61853c6 100755 --- a/main.sh +++ b/main.sh
@@ -1,6 +1,6 @@ #! /usr/bin/env sh ./build_patterns.sh -gcc -O0 -ggdb -std=c23 -pie -fPIE -fsanitize=address main.c || exit 1 +gcc -O0 -ggdb -std=c23 -pie -fPIE main.c || exit 1 #sudo valgrind --leak-check=full -s ./a.out rsync -raPz *.c *.txt a.out rory.gay: diff --git a/meson.build b/meson.build
index 241a1cf..f1cd1ae 100644 --- a/meson.build +++ b/meson.build
@@ -1,6 +1,6 @@ project('BlockScrapersC', 'c', version : '1.0.0', - default_options : ['warning_level=3', 'c_std=c2x']) + default_options : ['warning_level=3', 'c_std=c23', '-std=c23']) BlockScrapersC = executable('BlockScrapersC', 'main.c', install : true)