From 9c5b6d5d14647a0caf5244619a1a2306e2f4e8ac Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net" Date: Tue, 15 Jan 2008 17:06:48 +0000 Subject: [PATCH 2/3] Introduce a counter for number of user defined chains. Introduce a counter for number of user defined chains. Signed-off-by: Jesper Dangaard Brouer --- libiptc/libiptc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libiptc') diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c index 5afaf40..b4d865e 100644 --- a/libiptc/libiptc.c +++ b/libiptc/libiptc.c @@ -132,6 +132,8 @@ STRUCT_TC_HANDLE struct chain_head *chain_iterator_cur; struct rule_head *rule_iterator_cur; + unsigned int num_chains; /* number of user defined chains */ + STRUCT_GETINFO info; STRUCT_GET_ENTRIES *entries; }; @@ -475,6 +477,7 @@ static int cache_add_entry(STRUCT_ENTRY *e, errno = -ENOMEM; return -1; } + h->num_chains++; /* New user defined chain */ __iptcc_p_add_chain(h, c, offset, num); @@ -1801,6 +1804,7 @@ TC_CREATE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) return 0; } + (*handle)->num_chains++; /* New user defined chain */ DEBUGP("Creating chain `%s'\n", chain); iptc_insert_chain(*handle, c); /* Insert sorted */ @@ -1867,13 +1871,15 @@ TC_DELETE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) } /* If we are about to delete the chain that is the current - * iterator, move chain iterator firward. */ + * iterator, move chain iterator forward. */ if (c == (*handle)->chain_iterator_cur) iptcc_chain_iterator_advance(*handle); list_del(&c->list); free(c); + (*handle)->num_chains--; /* One user defined chain deleted */ + DEBUGP("chain `%s' deleted\n", chain); set_changed(*handle); -- cgit v1.2.3