Hi, for information, ipfilter 4.1.9 doesn't compile on my FreeBSD 5.4-RELEASE-p6 systems - the attached patch fixes the compilation errors for me, however a number of warnings remain.
I haven't been able to test the resulting software properly yet, but I thought it'd be worth sharing what I'd found out so far to avoid duplication of effort. Simon
diff -urN ip_fil4.1.9.orig/fil.c ip_fil4.1.9/fil.c --- ip_fil4.1.9.orig/fil.c Sat Aug 13 06:19:59 2005 +++ ip_fil4.1.9/fil.c Thu Aug 25 16:36:11 2005 @@ -74,7 +74,9 @@ # include <net/af.h> #endif #if !defined(_KERNEL) && defined(__FreeBSD__) +#undef _RADIX_H_ /* this gets defined earlier - temporarily undefine it */ # include "radix_ipf.h" +#define _RADIX_H_ /* redefine */ #endif #include <net/route.h> #include <netinet/in.h> diff -urN ip_fil4.1.9.orig/ip_compat.h ip_fil4.1.9/ip_compat.h --- ip_fil4.1.9.orig/ip_compat.h Thu Aug 11 16:13:49 2005 +++ ip_fil4.1.9/ip_compat.h Thu Aug 25 16:42:08 2005 @@ -768,7 +768,7 @@ #ifdef __FreeBSD__ # if defined(_KERNEL) # if (__FreeBSD_version >= 500000) -# include "opt_bpf.h" +/* This file is missing from the distribution *//*# include "opt_bpf.h" */ # else # include "bpf.h" # endif diff -urN ip_fil4.1.9.orig/ip_sync.c ip_fil4.1.9/ip_sync.c --- ip_fil4.1.9.orig/ip_sync.c Sun Jun 12 05:18:14 2005 +++ ip_fil4.1.9/ip_sync.c Thu Aug 25 16:40:14 2005 @@ -229,8 +229,10 @@ ips->is_die = htonl(ips->is_die); ips->is_pass = htonl(ips->is_pass); ips->is_flags = htonl(ips->is_flags); - ips->is_opt = htonl(ips->is_opt); - ips->is_optmsk = htonl(ips->is_optmsk); + ips->is_opt[0] = htonl(ips->is_opt[0]); + ips->is_opt[1] = htonl(ips->is_opt[1]); + ips->is_optmsk[0] = htonl(ips->is_optmsk[0]); + ips->is_optmsk[1] = htonl(ips->is_optmsk[1]); ips->is_sec = htons(ips->is_sec); ips->is_secmsk = htons(ips->is_secmsk); ips->is_auth = htons(ips->is_auth); @@ -244,8 +246,10 @@ ips->is_die = ntohl(ips->is_die); ips->is_pass = ntohl(ips->is_pass); ips->is_flags = ntohl(ips->is_flags); - ips->is_opt = ntohl(ips->is_opt); - ips->is_optmsk = ntohl(ips->is_optmsk); + ips->is_opt[0] = ntohl(ips->is_opt[0]); + ips->is_opt[1] = ntohl(ips->is_opt[1]); + ips->is_optmsk[0] = ntohl(ips->is_optmsk[0]); + ips->is_optmsk[1] = ntohl(ips->is_optmsk[1]); ips->is_sec = ntohs(ips->is_sec); ips->is_secmsk = ntohs(ips->is_secmsk); ips->is_auth = ntohs(ips->is_auth);
