[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