From 7b240df7f18dc47e3287ec0d212a88e84fd66ee7 Mon Sep 17 00:00:00 2001 From: "/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org" Date: Fri, 5 Jan 2007 23:25:23 +0000 Subject: - 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. --- src/conntrack/api.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/conntrack/api.c') diff --git a/src/conntrack/api.c b/src/conntrack/api.c index a3cc061..f008f49 100644 --- a/src/conntrack/api.c +++ b/src/conntrack/api.c @@ -185,6 +185,12 @@ void nfct_callback_unregister(struct nfct_handle *h) * @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 @@ void nfct_set_attr(struct nf_conntrack *ct, 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); + } } /** -- cgit v1.2.3