diff options
-rw-r--r-- | configure.in | 42 | ||||
-rw-r--r-- | extensions/libnetfilter_conntrack_icmp.c | 2 | ||||
-rw-r--r-- | extensions/libnetfilter_conntrack_sctp.c | 2 | ||||
-rw-r--r-- | extensions/libnetfilter_conntrack_tcp.c | 2 | ||||
-rw-r--r-- | extensions/libnetfilter_conntrack_udp.c | 2 | ||||
-rw-r--r-- | include/Makefile.am | 2 | ||||
-rw-r--r-- | include/libnetfilter_conntrack/Makefile.am | 4 | ||||
-rw-r--r-- | include/libnetfilter_conntrack/libnetfilter_conntrack.h | 4 | ||||
-rw-r--r-- | include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h | 133 |
9 files changed, 145 insertions, 48 deletions
diff --git a/configure.in b/configure.in index 6a55a53..5a02570 100644 --- a/configure.in +++ b/configure.in @@ -19,53 +19,13 @@ case $target in esac AC_CHECK_LIB([nfnetlink], [nfnl_listen]) - - - -dnl-------------------------------- - -AC_DEFUN([NF_KERNEL_SOURCE],[ - - if test "$with_kernel" = ""; then - KERNEL="`uname -r`" - else - KERNEL="$with_kernel" - fi - - THIS_PREFIX="" - for i in "/lib/modules/$KERNEL/build/include" "$KERNEL" "$KERNEL/include" "/usr/src/linux-$KERNEL" "/usr/src/kernel-$KERNEL" "/usr/src/linux-headers-$KERNEL" "/usr/src/kernel-headers-$KERNEL" - do - AC_MSG_CHECKING([Looking for kernel source or headers in $i]) - if test -r "$i/linux/config.h" - then - THIS_PREFIX="$i" - AC_MSG_RESULT([found]) - break - fi - AC_MSG_RESULT([ ]) - done - if test -r "$THIS_PREFIX/linux/config.h" ; then - AC_SUBST(KERNELDIR,[$THIS_PREFIX]) - AC_MSG_RESULT([found]) - else - AC_MSG_ERROR([not found $THIS_PREFIX]) - fi - - # somehow add this as an include path -]) - -AC_ARG_WITH(kernel, - AC_HELP_STRING([--with-kernel=DIR], - [ Show location of kernel source. Default is to use uname -r and look in /lib/modules/KERNEL/build/include. ]), - NF_KERNEL_SOURCE($with_kernel),NF_KERNEL_SOURCE()) +AC_CHECK_HEADER([libnfnetlink/linux_nfnetlink.h], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([libnfnetlink 0.0.11 or later needed])]) if test ! -z "$libdir"; then MODULE_DIR="\\\"$libdir/libnetfilter_conntrack/\\\"" CFLAGS="$CFLAGS -DLIBNETFILTER_CONNTRACK_DIR=$MODULE_DIR" fi -dnl-------------------------------- - dnl Output the makefile AC_OUTPUT(Makefile src/Makefile include/Makefile utils/Makefile include/libnetfilter_conntrack/Makefile extensions/Makefile) diff --git a/extensions/libnetfilter_conntrack_icmp.c b/extensions/libnetfilter_conntrack_icmp.c index 4e94dc1..a6cfe77 100644 --- a/extensions/libnetfilter_conntrack_icmp.c +++ b/extensions/libnetfilter_conntrack_icmp.c @@ -12,7 +12,7 @@ #include <stdlib.h> #include <string.h> #include <netinet/in.h> /* For htons */ -#include <linux/netfilter/nfnetlink_conntrack.h> +#include <libnetfilter_conntrack/linux_nfnetlink_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack_extensions.h> diff --git a/extensions/libnetfilter_conntrack_sctp.c b/extensions/libnetfilter_conntrack_sctp.c index 1b5c648..81a2467 100644 --- a/extensions/libnetfilter_conntrack_sctp.c +++ b/extensions/libnetfilter_conntrack_sctp.c @@ -12,7 +12,7 @@ #include <stdlib.h> #include <string.h> #include <netinet/in.h> /* For htons */ -#include <linux/netfilter/nfnetlink_conntrack.h> +#include <libnetfilter_conntrack/linux_nfnetlink_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack_extensions.h> diff --git a/extensions/libnetfilter_conntrack_tcp.c b/extensions/libnetfilter_conntrack_tcp.c index c7b26b2..95503ec 100644 --- a/extensions/libnetfilter_conntrack_tcp.c +++ b/extensions/libnetfilter_conntrack_tcp.c @@ -12,7 +12,7 @@ #include <stdlib.h> #include <string.h> #include <netinet/in.h> /* For htons */ -#include <linux/netfilter/nfnetlink_conntrack.h> +#include <libnetfilter_conntrack/linux_nfnetlink_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack_extensions.h> diff --git a/extensions/libnetfilter_conntrack_udp.c b/extensions/libnetfilter_conntrack_udp.c index 88d51b7..21c599a 100644 --- a/extensions/libnetfilter_conntrack_udp.c +++ b/extensions/libnetfilter_conntrack_udp.c @@ -12,7 +12,7 @@ #include <stdlib.h> #include <string.h> #include <netinet/in.h> /* For htons */ -#include <linux/netfilter/nfnetlink_conntrack.h> +#include <libnetfilter_conntrack/linux_nfnetlink_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack.h> #include <libnetfilter_conntrack/libnetfilter_conntrack_extensions.h> diff --git a/include/Makefile.am b/include/Makefile.am index 93416b9..f1aa6b8 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,2 +1,4 @@ SUBDIRS = libnetfilter_conntrack + +noinst_HEADERS = linux_list.h diff --git a/include/libnetfilter_conntrack/Makefile.am b/include/libnetfilter_conntrack/Makefile.am index a6f4617..da43eec 100644 --- a/include/libnetfilter_conntrack/Makefile.am +++ b/include/libnetfilter_conntrack/Makefile.am @@ -1,2 +1,4 @@ -pkginclude_HEADERS = libnetfilter_conntrack.h +pkginclude_HEADERS = libnetfilter_conntrack.h linux_nfnetlink_conntrack.h + +noinst_HEADERS = libnetfilter_conntrack_extensions.h diff --git a/include/libnetfilter_conntrack/libnetfilter_conntrack.h b/include/libnetfilter_conntrack/libnetfilter_conntrack.h index db83cf0..9fbb969 100644 --- a/include/libnetfilter_conntrack/libnetfilter_conntrack.h +++ b/include/libnetfilter_conntrack/libnetfilter_conntrack.h @@ -9,9 +9,9 @@ #define _LIBNETFILTER_CONNTRACK_H_ #include <netinet/in.h> -#include <linux/netfilter/nfnetlink.h> -#include <linux/netfilter/nfnetlink_conntrack.h> +#include <libnfnetlink/linux_nfnetlink.h> #include <libnfnetlink/libnfnetlink.h> +#include <libnetfilter_conntrack/linux_nfnetlink_conntrack.h> enum { CONNTRACK = NFNL_SUBSYS_CTNETLINK, diff --git a/include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h b/include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h new file mode 100644 index 0000000..32e0f2a --- /dev/null +++ b/include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h @@ -0,0 +1,133 @@ +#ifndef _IPCONNTRACK_NETLINK_H +#define _IPCONNTRACK_NETLINK_H +#include <libnfnetlink/linux_nfnetlink.h> + +enum cntl_msg_types { + IPCTNL_MSG_CT_NEW, + IPCTNL_MSG_CT_GET, + IPCTNL_MSG_CT_DELETE, + IPCTNL_MSG_CT_GET_CTRZERO, + + IPCTNL_MSG_MAX +}; + +enum ctnl_exp_msg_types { + IPCTNL_MSG_EXP_NEW, + IPCTNL_MSG_EXP_GET, + IPCTNL_MSG_EXP_DELETE, + + IPCTNL_MSG_EXP_MAX +}; + + +enum ctattr_type { + CTA_UNSPEC, + CTA_TUPLE_ORIG, + CTA_TUPLE_REPLY, + CTA_STATUS, + CTA_PROTOINFO, + CTA_HELP, + CTA_NAT, + CTA_TIMEOUT, + CTA_MARK, + CTA_COUNTERS_ORIG, + CTA_COUNTERS_REPLY, + CTA_USE, + CTA_ID, + __CTA_MAX +}; +#define CTA_MAX (__CTA_MAX - 1) + +enum ctattr_tuple { + CTA_TUPLE_UNSPEC, + CTA_TUPLE_IP, + CTA_TUPLE_PROTO, + __CTA_TUPLE_MAX +}; +#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) + +enum ctattr_ip { + CTA_IP_UNSPEC, + CTA_IP_V4_SRC, + CTA_IP_V4_DST, + CTA_IP_V6_SRC, + CTA_IP_V6_DST, + __CTA_IP_MAX +}; +#define CTA_IP_MAX (__CTA_IP_MAX - 1) + +enum ctattr_l4proto { + CTA_PROTO_UNSPEC, + CTA_PROTO_NUM, + CTA_PROTO_SRC_PORT, + CTA_PROTO_DST_PORT, + CTA_PROTO_ICMP_ID, + CTA_PROTO_ICMP_TYPE, + CTA_PROTO_ICMP_CODE, + __CTA_PROTO_MAX +}; +#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1) + +enum ctattr_protoinfo { + CTA_PROTOINFO_UNSPEC, + CTA_PROTOINFO_TCP, + __CTA_PROTOINFO_MAX +}; +#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1) + +enum ctattr_protoinfo_tcp { + CTA_PROTOINFO_TCP_UNSPEC, + CTA_PROTOINFO_TCP_STATE, + __CTA_PROTOINFO_TCP_MAX +}; +#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1) + +enum ctattr_counters { + CTA_COUNTERS_UNSPEC, + CTA_COUNTERS_PACKETS, /* old 64bit counters */ + CTA_COUNTERS_BYTES, /* old 64bit counters */ + CTA_COUNTERS32_PACKETS, + CTA_COUNTERS32_BYTES, + __CTA_COUNTERS_MAX +}; +#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) + +enum ctattr_nat { + CTA_NAT_UNSPEC, + CTA_NAT_MINIP, + CTA_NAT_MAXIP, + CTA_NAT_PROTO, + __CTA_NAT_MAX +}; +#define CTA_NAT_MAX (__CTA_NAT_MAX - 1) + +enum ctattr_protonat { + CTA_PROTONAT_UNSPEC, + CTA_PROTONAT_PORT_MIN, + CTA_PROTONAT_PORT_MAX, + __CTA_PROTONAT_MAX +}; +#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) + +enum ctattr_expect { + CTA_EXPECT_UNSPEC, + CTA_EXPECT_MASTER, + CTA_EXPECT_TUPLE, + CTA_EXPECT_MASK, + CTA_EXPECT_TIMEOUT, + CTA_EXPECT_ID, + CTA_EXPECT_HELP_NAME, + __CTA_EXPECT_MAX +}; +#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1) + +enum ctattr_help { + CTA_HELP_UNSPEC, + CTA_HELP_NAME, + __CTA_HELP_MAX +}; +#define CTA_HELP_MAX (__CTA_HELP_MAX - 1) + +#define CTA_HELP_MAXNAMESIZE 32 + +#endif /* _IPCONNTRACK_NETLINK_H */ |