Add missing includes. For some non-POSIX integer types and open() Rename global logging facility so it won't try to shadow musl-provided symbol and cause build failures udphdr union has two variants - RFC and BSD flavors, glibc uses union, musl uses BSD flavor in netinet/udp.h with linux/udp.h for RFC flavor. Switched header to linux. https://bugs.gentoo.org/716916 https://bugs.gentoo.org/731184 --- a/Source/defines.h +++ b/Source/defines.h @@ -62,6 +62,7 @@ /* Useful types */ #ifndef _I386_TYPES_H +#include typedef u_int32_t __u32; typedef u_int16_t __u16; typedef u_int8_t __u8; --- a/Source/pidfile.c +++ b/Source/pidfile.c @@ -31,6 +31,7 @@ #include #include #include +#include /* read_pid * --- a/Source/configuration.c +++ b/Source/configuration.c @@ -39,11 +39,11 @@ FILE *open_configuration(char *name) { FILE *configfile; - extern struct loginfo log; + extern struct loginfo local_log; configfile = fopen(name, "r"); if (configfile == NULL) { - log.log(log.level_or_fd, "Cannot open configuration file %s.\n", name); + local_log.log(local_log.level_or_fd, "Cannot open configuration file %s.\n", name); exit(1); } return configfile; --- a/Source/icmp.c +++ b/Source/icmp.c @@ -46,7 +46,7 @@ int icmp_socket; struct loginfo icmp_log; -extern struct loginfo log; +extern struct loginfo local_log; extern unsigned short resolve_protocols; /* @@ -299,7 +299,7 @@ icmp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); if (icmp_socket <= 0) { int error = errno; - log.log(log.level_or_fd, "FATAL: Unable to open icmp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); + local_log.log(local_log.level_or_fd, "FATAL: Unable to open icmp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); exit(1); } @@ -311,7 +311,7 @@ for(;;) { if (read(icmp_socket, (__u8 *) &pkt, ICMP_CAPTURE_LENGTH) == -1) { - log.log(log.level_or_fd, "FATAL: Unable to read icmp raw socket"); + local_log.log(local_log.level_or_fd, "FATAL: Unable to read icmp raw socket"); exit(1); } --- a/Source/log.c +++ b/Source/log.c @@ -32,7 +32,7 @@ #include "log.h" -extern struct loginfo log; +extern struct loginfo local_log; /* Mutex either for stdout or for a file */ pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -193,7 +193,7 @@ *fd = open((const char *) filename, O_WRONLY | O_APPEND | O_CREAT, 0640); if (*fd == 0) { - log.log(log.level_or_fd, "Can't open log file %s.", filename); + local_log.log(local_log.level_or_fd, "Can't open log file %s.", filename); } } --- a/Source/main.c +++ b/Source/main.c @@ -54,7 +54,7 @@ #endif /* Logging mechanism */ -struct loginfo log; +struct loginfo local_log; /* Do we have to run as a daemon? */ int run_as_daemon = TRUE; @@ -127,17 +127,17 @@ account = getpwnam(used_user); if (!account) { - log.log(log.level_or_fd, "WARNING: I cannot find the \"%s\" account. Not spawning threads.", used_user); + local_log.log(local_log.level_or_fd, "WARNING: I cannot find the \"%s\" account. Not spawning threads.", used_user); log_protocols = NONE; return; } if (!strcmp(used_user, "root")) { - log.log(log.level_or_fd, "WARNING: Using root account to run threads!"); + local_log.log(local_log.level_or_fd, "WARNING: Using root account to run threads!"); } if (log_protocols == NONE) { - log.log(log.level_or_fd, "WARNING: Nothing to log."); + local_log.log(local_log.level_or_fd, "WARNING: Nothing to log."); return; } @@ -309,7 +309,7 @@ /* Check PID */ if (check_pid(PID_FILE)) { - log.log(log.level_or_fd, "Already running. Exiting..."); + local_log.log(local_log.level_or_fd, "Already running. Exiting..."); exit(1); } @@ -323,7 +323,7 @@ /* Write PID file */ if (!write_pid(PID_FILE)) { - log.log(log.level_or_fd, "Can't write pid.\n"); + local_log.log(local_log.level_or_fd, "Can't write pid.\n"); exit(1); } @@ -360,7 +360,7 @@ (void) remove_pid(PID_FILE); } - log.log(log.level_or_fd, "IP Protocols Logger: stopped (signal %d).", sig); + local_log.log(local_log.level_or_fd, "IP Protocols Logger: stopped (signal %d).", sig); exit(0); } @@ -372,8 +372,8 @@ */ void sighup(int sig) { // DEPRECATED - reload_configuration(); - // log.log(log.level_or_fd, "IP Protocols Logger: reloaded configuration."); - log.log(log.level_or_fd, "IP Protocols Logger: reload configuration is unsupported."); + // local_log.log(local_log.level_or_fd, "IP Protocols Logger: reloaded configuration."); + local_log.log(local_log.level_or_fd, "IP Protocols Logger: reload configuration is unsupported."); die(sig); signal(SIGHUP, sighup); } @@ -412,15 +412,15 @@ if (configuration_file == NULL) configuration_file = strdup(CONFIGURATION_FILE); - init_loginfo(&log); - log.open(&log.level_or_fd, log.file); + init_loginfo(&local_log); + local_log.open(&local_log.level_or_fd, local_log.file); if (run_as_daemon) { go_background(); } start_all_threads(); - log.log(log.level_or_fd, "IP Protocols Logger: started."); + local_log.log(local_log.level_or_fd, "IP Protocols Logger: started."); for(;;) { sleep(dns_expire); --- a/Source/netutils.c +++ b/Source/netutils.c @@ -34,7 +34,7 @@ #include "netutils.h" #include "log.h" -extern struct loginfo log; +extern struct loginfo local_log; /* Mutexes */ pthread_mutex_t service_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -96,7 +96,7 @@ pthread_mutex_unlock(&dns_mutex); #ifdef CACHE_DEBUG - log.log(log.level_or_fd, "DEBUG cache: cleared %d entries", dbg_freed); + local_log.log(local_log.level_or_fd, "DEBUG cache: cleared %d entries", dbg_freed); #endif } @@ -121,7 +121,7 @@ #ifdef CACHE_DEBUG if (dbg_calls % DUMP_EVERY == 0) - log.log(log.level_or_fd, "DEBUG cache: %d calls - %d misses", dbg_calls, dbg_missed); + local_log.log(local_log.level_or_fd, "DEBUG cache: %d calls - %d misses", dbg_calls, dbg_missed); dbg_calls++; #endif @@ -165,8 +165,8 @@ #endif res = perform_lookup(host, in); #ifdef CACHE_DEBUG - log.log(log.level_or_fd, "DEBUG cache: result of lookup - %s", host); - log.log(log.level_or_fd, "DEBUG cache: replacing (%d; %d; %d; %s)", key, table[key].ip, table[key].dirty, table[key].name); + local_log.log(local_log.level_or_fd, "DEBUG cache: result of lookup - %s", host); + local_log.log(local_log.level_or_fd, "DEBUG cache: replacing (%d; %d; %d; %s)", key, table[key].ip, table[key].dirty, table[key].name); #endif /* Now host contains the correct value; store it in the table */ table[key].ip = in; --- a/Source/tcp.c +++ b/Source/tcp.c @@ -51,7 +51,7 @@ int tcp_socket; struct loginfo tcp_log; -extern struct loginfo log; +extern struct loginfo local_log; extern unsigned short resolve_protocols; extern unsigned short portresolve_protocols; @@ -262,7 +262,7 @@ tcp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); if (tcp_socket <= 0) { int error = errno; - log.log(log.level_or_fd, "FATAL: Unable to open tcp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); + local_log.log(local_log.level_or_fd, "FATAL: Unable to open tcp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); exit(1); } @@ -274,7 +274,7 @@ for(;;) { if (read(tcp_socket, (__u8 *) &pkt, TCP_CAPTURE_LENGTH) == -1) { - log.log(log.level_or_fd, "FATAL: Unable to read tcp raw socket"); + local_log.log(local_log.level_or_fd, "FATAL: Unable to read tcp raw socket"); exit(1); } --- a/Source/ippl.y +++ b/Source/ippl.y @@ -535,7 +535,7 @@ */ void print_error(char *s, int l) { - extern struct loginfo log; + extern struct loginfo local_log; - log.log(log.level_or_fd, "CFG: Parse error line %d: %s",l,s); + local_log.log(local_log.level_or_fd, "CFG: Parse error line %d: %s",l,s); } --- a/Source/udp.c +++ b/Source/udp.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include @@ -48,7 +48,7 @@ extern unsigned short resolve_protocols; struct loginfo udp_log; -extern struct loginfo log; +extern struct loginfo local_log; /* * Structure of a UDP packet @@ -141,7 +141,7 @@ udp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); if (udp_socket <= 0) { int error = errno; - log.log(log.level_or_fd, "FATAL: Unable to open udp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); + local_log.log(local_log.level_or_fd, "FATAL: Unable to open udp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error)); exit(1); } @@ -153,7 +153,7 @@ for(;;) { if (read(udp_socket, (__u8 *) &pkt, UDP_CAPTURE_LENGTH) == -1) { - log.log(log.level_or_fd, "FATAL: Unable to read udp raw socket"); + local_log.log(local_log.level_or_fd, "FATAL: Unable to read udp raw socket"); exit(1); }