[netfilter-cvslog] r6688 - in trunk/ulog/ulogd: . libipulog/include
libipulog/include/libipulog libipulog/include/linux
libipulog/include/linux/netfilter_ipv4
kaber at netfilter.org
kaber at netfilter.org
Fri Oct 13 08:38:26 CEST 2006
Author: kaber at netfilter.org
Date: 2006-10-13 08:38:26 +0200 (Fri, 13 Oct 2006)
New Revision: 6688
Added:
trunk/ulog/ulogd/libipulog/include/linux/
trunk/ulog/ulogd/libipulog/include/linux/netfilter_ipv4/
trunk/ulog/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h
Modified:
trunk/ulog/ulogd/Rules.make.in
trunk/ulog/ulogd/configure.in
trunk/ulog/ulogd/libipulog/include/libipulog/libipulog.h
Log:
[PATCH]: ulogd fix for kernel 64bits/userspace 32bits system (Eric Leblond)
Modified: trunk/ulog/ulogd/Rules.make.in
===================================================================
--- trunk/ulog/ulogd/Rules.make.in 2006-10-11 07:37:26 UTC (rev 6687)
+++ trunk/ulog/ulogd/Rules.make.in 2006-10-13 06:38:26 UTC (rev 6688)
@@ -20,8 +20,9 @@
CFLAGS=@CFLAGS@ @CPPFLAGS@ -Wall
CFLAGS+=-DULOGD_CONFIGFILE=\"$(ULOGD_CONFIGFILE)\"
+CFLAGS+=@KERNEL64_USERSPACE32@
# doesn't work for subdirs
-#CFLAGS+=$(INCIPULOG) $(INCCONFFILE)
+CFLAGS+=$(INCIPULOG)
CFLAGS+=-I/lib/modules/`uname -r`/build/include
#CFLAGS+=@DEFS@
#CFLAGS+=-g -DDEBUG -DDEBUG_MYSQL -DDEBUG_PGSQL
Modified: trunk/ulog/ulogd/configure.in
===================================================================
--- trunk/ulog/ulogd/configure.in 2006-10-11 07:37:26 UTC (rev 6687)
+++ trunk/ulog/ulogd/configure.in 2006-10-13 06:38:26 UTC (rev 6688)
@@ -31,6 +31,8 @@
DATABASE_DRIVERS=""
+KERNEL64_USERSPACE32=""
+
dnl
dnl test for MySQL
dnl
@@ -250,7 +252,19 @@
AC_MSG_WARN(the use of --with-sqlite3-log-ip-as-string is discouraged)
])
+dnl
+dnl Kernel 64
+dnl
+AC_ARG_WITH(kernel-64-user-32,
+ --with-kernel-64-user-32 Use this flag to compile on system where kernel is 64 bits
+ userspace is 32.
+,[
+ KERNEL64_USERSPACE32="-DKERNEL_64_USERSPACE_32"
+ AC_MSG_WARN(The use of the flag kernel-64-user-32 could interfere with kernel evolution. Use it at your own risk.)
+])
+
+
AC_SUBST(DATABASE_DIR)
AC_SUBST(DATABASE_LIB)
AC_SUBST(DATABASE_LIB_DIR)
@@ -262,6 +276,8 @@
AC_SUBST(DATABASE_DRIVERS)
AC_SUBST(HAVE_PCAP_H)
+AC_SUBST(KERNEL64_USERSPACE32)
+
AM_CONDITIONAL(HAVE_MYSQL, test x$mysqldir != x)
AM_CONDITIONAL(HAVE_PGSQL, test x$pgsqldir != x)
AM_CONDITIONAL(HAVE_SQLITE3, test x$sqlite3dir != x)
Modified: trunk/ulog/ulogd/libipulog/include/libipulog/libipulog.h
===================================================================
--- trunk/ulog/ulogd/libipulog/include/libipulog/libipulog.h 2006-10-11 07:37:26 UTC (rev 6687)
+++ trunk/ulog/ulogd/libipulog/include/libipulog/libipulog.h 2006-10-13 06:38:26 UTC (rev 6688)
@@ -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
Added: trunk/ulog/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h
===================================================================
--- trunk/ulog/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h (rev 0)
+++ trunk/ulog/ulogd/libipulog/include/linux/netfilter_ipv4/ipt_ULOG.h 2006-10-13 06:38:26 UTC (rev 6688)
@@ -0,0 +1,62 @@
+/* Header file for IP tables userspace logging, Version 1.8
+ *
+ * (C) 2000-2002 by Harald Welte <laforge at 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*/
More information about the netfilter-cvslog
mailing list