diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-07-06 14:29:33 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-08-18 01:13:35 +0200 |
commit | 327554218c59902965a160b71c7b6021a0d8bf4b (patch) | |
tree | 5af22ea3f55a3fde432e2e01f983df92728336c2 /include/rule.h | |
parent | c54fbd53c73fd0426329bfbeaa99bdda244542a9 (diff) |
rule: add chain reference counter
When adding declared chains to the cache, we may hold more than one single
reference from struct cmd and the cache.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/rule.h')
-rw-r--r-- | include/rule.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/rule.h b/include/rule.h index 4e688794..f137a4c8 100644 --- a/include/rule.h +++ b/include/rule.h @@ -110,6 +110,7 @@ enum chain_flags { * @list: list node in table list * @handle: chain handle * @location: location the chain was defined at + * @refcnt: reference counter * @flags: chain flags * @hookstr: unified and human readable hook name (base chains) * @hooknum: hook number (base chains) @@ -123,6 +124,7 @@ struct chain { struct list_head list; struct handle handle; struct location location; + unsigned int refcnt; uint32_t flags; const char *hookstr; unsigned int hooknum; @@ -137,6 +139,7 @@ struct chain { extern const char *chain_type_name_lookup(const char *name); extern const char *chain_hookname_lookup(const char *name); extern struct chain *chain_alloc(const char *name); +extern struct chain *chain_get(struct chain *chain); extern void chain_free(struct chain *chain); extern void chain_add_hash(struct chain *chain, struct table *table); extern struct chain *chain_lookup(const struct table *table, |