summaryrefslogtreecommitdiffstats
path: root/ulogd/libipulog
diff options
context:
space:
mode:
author/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org>2006-10-13 06:38:26 +0000
committer/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org>2006-10-13 06:38:26 +0000
commita04029553ce3bfbae039becebaef04a0ea0ae1ab (patch)
treebe996a47c320bb703ecd73cc2efb6165b27e16ce /ulogd/libipulog
parente26f2d38607d42afe903e18a731ee0a0f85fb6d5 (diff)
[PATCH]: ulogd fix for kernel 64bits/userspace 32bits system (Eric Leblond)
Diffstat (limited to 'ulogd/libipulog')
-rw-r--r--ulogd/libipulog/include/libipulog/libipulog.h4
-rw-r--r--ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h62
2 files changed, 64 insertions, 2 deletions
diff --git a/ulogd/libipulog/include/libipulog/libipulog.h b/ulogd/libipulog/include/libipulog/libipulog.h
index 307510c..b3805d7 100644
--- a/ulogd/libipulog/include/libipulog/libipulog.h
+++ b/ulogd/libipulog/include/libipulog/libipulog.h
@@ -1,7 +1,7 @@
#ifndef _LIBIPULOG_H
#define _LIBIPULOG_H
-/* $Id: libipulog.h,v 1.6 2002/07/30 07:23:36 laforge Exp $ */
+/* $Id$ */
#include <errno.h>
#include <unistd.h>
@@ -12,7 +12,7 @@
#include <asm/types.h>
#include <linux/netlink.h>
#include <net/if.h>
-#include <linux/netfilter_ipv4/ipt_ULOG.h>
+#include "linux/netfilter_ipv4/ipt_ULOG.h"
/* FIXME: glibc sucks */
#ifndef MSG_TRUNC
diff --git a/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h b/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h
new file mode 100644
index 0000000..de062cd
--- /dev/null
+++ b/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h
@@ -0,0 +1,62 @@
+/* Header file for IP tables userspace logging, Version 1.8
+ *
+ * (C) 2000-2002 by Harald Welte <laforge@gnumonks.org>
+ *
+ * Distributed under the terms of GNU GPL */
+#ifndef _IPT_ULOG_H
+#define _IPT_ULOG_H
+
+#ifndef NETLINK_NFLOG
+#define NETLINK_NFLOG 5
+#endif
+
+#define ULOG_DEFAULT_NLGROUP 1
+#define ULOG_DEFAULT_QTHRESHOLD 1
+
+#define ULOG_MAC_LEN 80
+#define ULOG_PREFIX_LEN 32
+
+#define ULOG_MAX_QLEN 50
+/* Why 50? Well... there is a limit imposed by the slab cache 131000
+ * bytes. So the multipart netlink-message has to be < 131000 bytes.
+ * Assuming a standard ethernet-mtu of 1500, we could define this up
+ * to 80... but even 50 seems to be big enough. */
+
+/* private data structure for each rule with a ULOG target */
+struct ipt_ulog_info {
+ unsigned int nl_group;
+#ifdef KERNEL_64_USERSPACE_32
+ unsigned long long copy_range;
+ unsigned long long qthreshold;
+#else
+ size_t copy_range;
+ size_t qthreshold;
+#endif
+ char prefix[ULOG_PREFIX_LEN];
+};
+
+/* Format of the ULOG packets passed through netlink */
+typedef struct ulog_packet_msg {
+ unsigned long mark;
+#ifdef KERNEL_64_USERSPACE_32
+ long long timestamp_sec;
+ long long timestamp_usec;
+#else
+ long timestamp_sec;
+ long timestamp_usec;
+#endif
+ unsigned int hook;
+ char indev_name[IFNAMSIZ];
+ char outdev_name[IFNAMSIZ];
+#ifdef KERNEL_64_USERSPACE_32
+ unsigned long long data_len;
+#else
+ size_t data_len;
+#endif
+ char prefix[ULOG_PREFIX_LEN];
+ unsigned char mac_len;
+ unsigned char mac[ULOG_MAC_LEN];
+ unsigned char payload[0];
+} ulog_packet_msg_t;
+
+#endif /*_IPT_ULOG_H*/