diff options
author | Jesper Dangaard Brouer <hawk@comx.dk> | 2008-01-15 17:06:48 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2008-01-15 17:06:48 +0000 |
commit | 48bde40e73b45ad134d32cde88b779fe509faf64 (patch) | |
tree | 66765ca502016875145bc38c1eb818216e085798 /libiptc/libiptc.c | |
parent | 910939897ea0cb9be2729a98c60a92e807aad5c3 (diff) |
Introduce a counter for number of user defined chains.
Introduce a counter for number of user defined chains.
Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>
Diffstat (limited to 'libiptc/libiptc.c')
-rw-r--r-- | libiptc/libiptc.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c index 5afaf407..b4d865e6 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); |