From: pcarana Date: Tue, 29 Oct 2019 20:57:41 +0000 (-0600) Subject: Fix unit tests, create common function to print IP addresses. X-Git-Tag: v1.2.0~63 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=16c3defee8e83d0dc4941b82063124324681c116;p=thirdparty%2FFORT-validator.git Fix unit tests, create common function to print IP addresses. -Add missing getters at configuration impersonator. -Create a common function to print IPv4 and IPv6 addresses, the function already existed but it was created multiple times at distinct sources. --- diff --git a/src/address.c b/src/address.c index 32764696..86b4d410 100644 --- a/src/address.c +++ b/src/address.c @@ -5,6 +5,7 @@ #include /* inet_ntop */ #include /* AF_INET, AF_INET6 (needed in OpenBSD) */ #include /* AF_INET, AF_INET6 (needed in OpenBSD) */ +#include "common.h" #include "log.h" #include "thread_var.h" @@ -386,18 +387,6 @@ range6_decode(IPAddressRange_t const *input, struct ipv6_range *result) return check_encoding6(result); } -static char const * -addr2str4(struct in_addr *addr, char *buffer) -{ - return inet_ntop(AF_INET, addr, buffer, INET_ADDRSTRLEN); -} - -static char const * -addr2str6(struct in6_addr *addr, char *buffer) -{ - return inet_ntop(AF_INET6, addr, buffer, INET6_ADDRSTRLEN); -} - static int str2addr4(const char *addr, struct in_addr *dst) { diff --git a/src/common.c b/src/common.c index 5083adc7..1282603c 100644 --- a/src/common.c +++ b/src/common.c @@ -4,6 +4,8 @@ #include #include #include +#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ +#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ #include #include "log.h" @@ -179,3 +181,15 @@ process_file_or_dir(char const *location, char const *file_ext, return process_dir_files(location, file_ext, cb, arg); } + +char const * +addr2str4(struct in_addr const *addr, char *buffer) +{ + return inet_ntop(AF_INET, addr, buffer, INET_ADDRSTRLEN); +} + +char const * +addr2str6(struct in6_addr const *addr, char *buffer) +{ + return inet_ntop(AF_INET6, addr, buffer, INET6_ADDRSTRLEN); +} diff --git a/src/common.h b/src/common.h index c636968c..409520ac 100644 --- a/src/common.h +++ b/src/common.h @@ -3,6 +3,7 @@ #include #include +#include /* "I think that this is not supposed to be implemented." */ #define ENOTSUPPORTED 3172 @@ -40,4 +41,7 @@ void close_thread(pthread_t thread, char const *what); typedef int (*process_file_cb)(char const *, void *); int process_file_or_dir(char const *, char const *, process_file_cb, void *); +char const *addr2str4(struct in_addr const *, char *); +char const *addr2str6(struct in6_addr const *, char *); + #endif /* SRC_RTR_COMMON_H_ */ diff --git a/src/output_printer.c b/src/output_printer.c index 37a44909..2ef122e5 100644 --- a/src/output_printer.c +++ b/src/output_printer.c @@ -1,8 +1,7 @@ #include "output_printer.h" #include -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ +#include "common.h" #include "config.h" #include "file.h" #include "log.h" @@ -11,18 +10,6 @@ char addr_buf[INET6_ADDRSTRLEN]; -static char const * -strv4addr(struct in_addr const *addr) -{ - return inet_ntop(AF_INET, addr, addr_buf, INET6_ADDRSTRLEN); -} - -static char const * -strv6addr(struct in6_addr const *addr) -{ - return inet_ntop(AF_INET6, addr, addr_buf, INET6_ADDRSTRLEN); -} - static int load_output_file(char const *output, FILE **result, bool *fopen) { @@ -60,12 +47,12 @@ print_roa(struct vrp const *vrp, void *arg) switch(vrp->addr_fam) { case AF_INET: fprintf(out, "AS%u,%s/%u,%u\n", vrp->asn, - strv4addr(&vrp->prefix.v4), vrp->prefix_length, + addr2str4(&vrp->prefix.v4, addr_buf), vrp->prefix_length, vrp->max_prefix_length); break; case AF_INET6: fprintf(out, "AS%u,%s/%u,%u\n", vrp->asn, - strv6addr(&vrp->prefix.v6), vrp->prefix_length, + addr2str6(&vrp->prefix.v6, addr_buf), vrp->prefix_length, vrp->max_prefix_length); break; default: diff --git a/src/rtr/pdu_sender.c b/src/rtr/pdu_sender.c index a0cfe9be..edd7355a 100644 --- a/src/rtr/pdu_sender.c +++ b/src/rtr/pdu_sender.c @@ -5,11 +5,10 @@ #include #include #include -#include /* inet_ntop */ -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ +#include /* INET_ADDRSTRLEN */ #include "clients.h" +#include "common.h" #include "config.h" #include "log.h" #include "rtr/pdu_serializer.h" @@ -102,13 +101,9 @@ static void pr_debug_prefix4(struct ipv4_prefix_pdu *pdu) { char buffer[INET_ADDRSTRLEN]; - char const *addr_str; - addr_str = inet_ntop(AF_INET, &pdu->ipv4_prefix, buffer, - INET_ADDRSTRLEN); - - pr_debug("Encoded prefix %s/%u into a PDU.", addr_str, - pdu->prefix_length); + pr_debug("Encoded prefix %s/%u into a PDU.", + addr2str4(&pdu->ipv4_prefix, buffer), pdu->prefix_length); } static int @@ -142,13 +137,9 @@ static void pr_debug_prefix6(struct ipv6_prefix_pdu *pdu) { char buffer[INET6_ADDRSTRLEN]; - char const *addr_str; - - addr_str = inet_ntop(AF_INET6, &pdu->ipv6_prefix, buffer, - INET6_ADDRSTRLEN); - pr_debug("Encoded prefix %s/%u into a PDU.", addr_str, - pdu->prefix_length); + pr_debug("Encoded prefix %s/%u into a PDU.", + addr2str6(&pdu->ipv6_prefix, buffer), pdu->prefix_length); } static int diff --git a/src/slurm/db_slurm.c b/src/slurm/db_slurm.c index 06297bee..99b39125 100644 --- a/src/slurm/db_slurm.c +++ b/src/slurm/db_slurm.c @@ -3,12 +3,11 @@ #include #include #include -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ -#include /* AF_INET, AF_INET6 (needed in OpenBSD) */ #include "crypto/base64.h" #include "data_structure/array_list.h" #include "object/router_key.h" +#include "common.h" struct slurm_prefix_ctx { struct slurm_prefix element; @@ -359,18 +358,6 @@ db_slurm_update_time(struct db_slurm *db) db->loaded_date_set = true; } -static char const * -strv4addr(struct in_addr const *addr) -{ - return inet_ntop(AF_INET, addr, addr_buf, INET6_ADDRSTRLEN); -} - -static char const * -strv6addr(struct in6_addr const *addr) -{ - return inet_ntop(AF_INET6, addr, addr_buf, INET6_ADDRSTRLEN); -} - static int print_prefix_data(struct slurm_prefix *prefix, void *arg) { @@ -384,12 +371,12 @@ print_prefix_data(struct slurm_prefix *prefix, void *arg) switch(prefix->vrp.addr_fam) { case AF_INET: pr_info("%s Prefix: %s/%u", pad, - strv4addr(&prefix->vrp.prefix.v4), + addr2str4(&prefix->vrp.prefix.v4, addr_buf), prefix->vrp.prefix_length); break; case AF_INET6: pr_info("%s Prefix: %s/%u", pad, - strv6addr(&prefix->vrp.prefix.v6), + addr2str6(&prefix->vrp.prefix.v6, addr_buf), prefix->vrp.prefix_length); break; default: diff --git a/test/address_test.c b/test/address_test.c index 780ab15b..d370294e 100644 --- a/test/address_test.c +++ b/test/address_test.c @@ -3,6 +3,7 @@ #include #include "address.c" +#include "common.c" #include "log.c" #include "impersonator.c" diff --git a/test/client_test.c b/test/client_test.c index 4bcdd56c..b626920e 100644 --- a/test/client_test.c +++ b/test/client_test.c @@ -7,7 +7,7 @@ #include "impersonator.c" static int -handle_foreach(struct client const *client, void *arg) +handle_foreach(struct client *client, void *arg) { unsigned int *state = arg; diff --git a/test/impersonator.c b/test/impersonator.c index b790bd39..13d7d3ee 100644 --- a/test/impersonator.c +++ b/test/impersonator.c @@ -119,6 +119,24 @@ config_get_output_bgpsec(void) return NULL; } +uint8_t +config_get_log_level(void) +{ + return 3; /* LOG_ERR */ +} + +enum log_output +config_get_log_output(void) +{ + return CONSOLE; +} + +unsigned int +config_get_asn1_decode_max_stack(void) +{ + return 4096; +} + enum incidence_action incidence_get_action(enum incidence_id id) { diff --git a/test/rtr/db/db_table_test.c b/test/rtr/db/db_table_test.c index f83c5e15..449e38e7 100644 --- a/test/rtr/db/db_table_test.c +++ b/test/rtr/db/db_table_test.c @@ -2,6 +2,7 @@ #include #include "address.c" +#include "common.c" #include "log.c" #include "impersonator.c" #include "object/router_key.c" diff --git a/test/rtr/pdu_test.c b/test/rtr/pdu_test.c index e1392776..896571c4 100644 --- a/test/rtr/pdu_test.c +++ b/test/rtr/pdu_test.c @@ -2,6 +2,7 @@ #include #include +#include "common.c" #include "log.c" #include "impersonator.c" #include "rtr/stream.c"