[netfilter-cvslog] r7359 - in branches/ulog/ulogd2: filter/raw2packet input/packet

pablo at netfilter.org pablo at netfilter.org
Sun Feb 10 03:07:42 CET 2008


Author: pablo at netfilter.org
Date: 2008-02-10 03:07:42 +0100 (Sun, 10 Feb 2008)
New Revision: 7359

Modified:
   branches/ulog/ulogd2/filter/raw2packet/ulogd_raw2packet_BASE.c
   branches/ulog/ulogd2/input/packet/ulogd_inppkt_NFLOG.c
   branches/ulog/ulogd2/input/packet/ulogd_inppkt_ULOG.c
Log:
revert r7348


Modified: branches/ulog/ulogd2/filter/raw2packet/ulogd_raw2packet_BASE.c
===================================================================
--- branches/ulog/ulogd2/filter/raw2packet/ulogd_raw2packet_BASE.c	2008-02-09 20:28:50 UTC (rev 7358)
+++ branches/ulog/ulogd2/filter/raw2packet/ulogd_raw2packet_BASE.c	2008-02-10 02:07:42 UTC (rev 7359)
@@ -44,7 +44,6 @@
 #include <ulogd/ipfix_protocol.h>
 
 enum output_keys {
-	KEY_OOB_FAMILY,
 	KEY_IP_SADDR,
 	KEY_IP_DADDR,
 	KEY_IP_PROTOCOL,
@@ -99,11 +98,6 @@
 };
 
 static struct ulogd_key iphdr_rets[] = {
-	[KEY_OOB_FAMILY] = {
-		.type = ULOGD_RET_UINT8,
-		.flags = ULOGD_RETF_NONE, 
-		.name = "oob.family",
-	},
 	[KEY_IP_SADDR] = { 
 		.type = ULOGD_RET_IPADDR,
 		.flags = ULOGD_RETF_NONE, 
@@ -825,27 +819,15 @@
 
 static int _interp_pkt(struct ulogd_pluginstance *pi)
 {
-	struct ulogd_key *ret = pi->output.keys;
-	struct iphdr *iph = pi->input.keys[0].u.source->u.value.ptr;
 	u_int32_t len = pi->input.keys[1].u.source->u.value.ui32;
 	u_int8_t family = pi->input.keys[2].u.source->u.value.ui8;
 
-	switch (iph->version) {
-		case 4:
-			ret[KEY_OOB_FAMILY].u.value.ui8 = AF_INET;
-			ret[KEY_OOB_FAMILY].flags |= ULOGD_RETF_VALID;
-
-			return _interp_iphdr(pi, len);
-		case 6:
-			ret[KEY_OOB_FAMILY].u.value.ui8 = AF_INET6;
-			ret[KEY_OOB_FAMILY].flags |= ULOGD_RETF_VALID;
-
-			return _interp_ipv6hdr(pi, len);
-		default:
-			/* unknown protocol */
-			return 0;
+	switch (family) {
+	case AF_INET:
+		return _interp_iphdr(pi, len);
+	case AF_INET6:
+		return _interp_ipv6hdr(pi, len);
 	}
-
 	return 0;
 }
 
@@ -865,6 +847,10 @@
 			.vendor = IPFIX_VENDOR_NETFILTER, 
 			.field_id = IPFIX_NF_rawpacket_length,
 		},
+	},
+	{
+		.type = ULOGD_RET_UINT8,
+		.name = "oob.family",
 	}
 };
 

Modified: branches/ulog/ulogd2/input/packet/ulogd_inppkt_NFLOG.c
===================================================================
--- branches/ulog/ulogd2/input/packet/ulogd_inppkt_NFLOG.c	2008-02-09 20:28:50 UTC (rev 7358)
+++ branches/ulog/ulogd2/input/packet/ulogd_inppkt_NFLOG.c	2008-02-10 02:07:42 UTC (rev 7359)
@@ -55,6 +55,12 @@
 			.u.value = NFLOG_RMEM_DEFAULT,
 		},
 		{
+			.key 	 = "addressfamily",
+			.type	 = CONFIG_TYPE_INT,
+			.options = CONFIG_OPT_NONE,
+			.u.value = AF_INET,
+		},
+		{
 			.key	 = "unbind",
 			.type	 = CONFIG_TYPE_INT,
 			.options = CONFIG_OPT_NONE,
@@ -98,6 +104,7 @@
 	NFLOG_KEY_RAW_MAC_LEN,
 	NFLOG_KEY_OOB_SEQ_LOCAL,
 	NFLOG_KEY_OOB_SEQ_GLOBAL,
+	NFLOG_KEY_OOB_FAMILY,
 	NFLOG_KEY_OOB_PROTOCOL,
 	NFLOG_KEY_OOB_UID,
 };
@@ -225,6 +232,11 @@
 		},
 	},
 	{
+		.type = ULOGD_RET_UINT8,
+		.flags = ULOGD_RETF_NONE,
+		.name = "oob.family",
+	},
+	{
 		.type = ULOGD_RET_UINT16,
 		.flags = ULOGD_RETF_NONE,
 		.name = "oob.protocol",
@@ -255,6 +267,9 @@
 	u_int32_t uid;
 	
 
+	ret[NFLOG_KEY_OOB_FAMILY].u.value.ui8 = af_ce(upi->config_kset).u.value;
+	ret[NFLOG_KEY_OOB_FAMILY].flags |= ULOGD_RETF_VALID;
+
 	if (ph) {
 		/* FIXME */
 		ret[NFLOG_KEY_OOB_HOOK].u.value.ui8 = ph->hook;

Modified: branches/ulog/ulogd2/input/packet/ulogd_inppkt_ULOG.c
===================================================================
--- branches/ulog/ulogd2/input/packet/ulogd_inppkt_ULOG.c	2008-02-09 20:28:50 UTC (rev 7358)
+++ branches/ulog/ulogd2/input/packet/ulogd_inppkt_ULOG.c	2008-02-10 02:07:42 UTC (rev 7359)
@@ -68,6 +68,7 @@
 	ULOG_KEY_OOB_IN,
 	ULOG_KEY_OOB_OUT,
 	ULOG_KEY_RAW_MAC_LEN,
+	ULOG_KEY_OOB_FAMILY,
 	ULOG_KEY_OOB_PROTOCOL,
 };
 
@@ -147,6 +148,11 @@
 		.name = "raw.mac_len", 
 	},
 	{
+		.type = ULOGD_RET_UINT8,
+		.flags = ULOGD_RETF_NONE,
+		.name = "oob.family",
+	},
+	{
 		.type = ULOGD_RET_UINT16,
 		.flags = ULOGD_RETF_NONE,
 		.name = "oob.protocol",
@@ -195,6 +201,9 @@
 	ret[ULOG_KEY_OOB_OUT].u.value.ptr = pkt->outdev_name;
 	ret[ULOG_KEY_OOB_OUT].flags |= ULOGD_RETF_VALID;
 
+	/* ULOG is IPv4 only */
+	ret[ULOG_KEY_OOB_FAMILY].u.value.ui8 = AF_INET;
+	ret[ULOG_KEY_OOB_FAMILY].flags |= ULOGD_RETF_VALID;
 	/* Undef in ULOG but necessary */
 	ret[ULOG_KEY_OOB_PROTOCOL].u.value.ui16 = 0;
 	ret[ULOG_KEY_OOB_PROTOCOL].flags |= ULOGD_RETF_VALID;




More information about the netfilter-cvslog mailing list