[netfilter-cvslog] r6721 - trunk/libnetfilter_conntrack/src/conntrack

pablo at netfilter.org pablo at netfilter.org
Sat Jan 6 00:25:24 CET 2007


Author: pablo at netfilter.org
Date: 2007-01-06 00:25:23 +0100 (Sat, 06 Jan 2007)
New Revision: 6721

Modified:
   trunk/libnetfilter_conntrack/src/conntrack/api.c
   trunk/libnetfilter_conntrack/src/conntrack/getter.c
Log:
- fix a crash on trying to set the counters of a conntrack
- document that ATTR_*_COUNTER_*, ATTR_USE and ATTR_ID are unsettable
- implement getter for the ATTR_USE attribute

Based on patches from Victor Stinner.



Modified: trunk/libnetfilter_conntrack/src/conntrack/api.c
===================================================================
--- trunk/libnetfilter_conntrack/src/conntrack/api.c	2006-12-29 21:57:46 UTC (rev 6720)
+++ trunk/libnetfilter_conntrack/src/conntrack/api.c	2007-01-05 23:25:23 UTC (rev 6721)
@@ -185,6 +185,12 @@
  * @ct: pointer to a valid conntrack
  * @type: attribute type
  * @value: pointer to the attribute value
+ *
+ * Note that certain attributes are unsettable:
+ * 	- ATTR_USE
+ * 	- ATTR_ID
+ * 	- ATTR_*_COUNTER_*
+ * The call of this function for such attributes do nothing.
  */
 void nfct_set_attr(struct nf_conntrack *ct,
 		   const enum nf_conntrack_attr type, 
@@ -196,8 +202,10 @@
 	if (type >= ATTR_MAX)
 		return;
 
-	set_attr_array[type](ct, value);
-	set_bit(type, ct->set);
+	if (set_attr_array[type]) {
+		set_attr_array[type](ct, value);
+		set_bit(type, ct->set);
+	}
 }
 
 /**

Modified: trunk/libnetfilter_conntrack/src/conntrack/getter.c
===================================================================
--- trunk/libnetfilter_conntrack/src/conntrack/getter.c	2006-12-29 21:57:46 UTC (rev 6720)
+++ trunk/libnetfilter_conntrack/src/conntrack/getter.c	2007-01-05 23:25:23 UTC (rev 6721)
@@ -162,6 +162,11 @@
 	return &ct->status;
 }
 
+static const void *get_attr_use(const struct nf_conntrack *ct)
+{
+	return &ct->use;
+}
+
 get_attr get_attr_array[] = {
 	[ATTR_ORIG_IPV4_SRC]		= get_attr_orig_ipv4_src,
 	[ATTR_ORIG_IPV4_DST] 		= get_attr_orig_ipv4_dst,
@@ -193,5 +198,6 @@
 	[ATTR_ORIG_COUNTER_BYTES]	= get_attr_orig_counter_bytes,
 	[ATTR_REPL_COUNTER_PACKETS]	= get_attr_repl_counter_packets,
 	[ATTR_REPL_COUNTER_BYTES]	= get_attr_repl_counter_bytes,
+	[ATTR_USE]			= get_attr_use,
 	[ATTR_STATUS]			= get_attr_status,
 };




More information about the netfilter-cvslog mailing list