diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chain.c | 28 | ||||
-rw-r--r-- | src/libnftnl.map | 3 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/chain.c b/src/chain.c index c8b7f9b..8668fb7d 100644 --- a/src/chain.c +++ b/src/chain.c @@ -734,6 +734,20 @@ int nftnl_rule_foreach(struct nftnl_chain *c, return 0; } +EXPORT_SYMBOL(nftnl_rule_lookup_byindex); +struct nftnl_rule * +nftnl_rule_lookup_byindex(struct nftnl_chain *c, uint32_t index) +{ + struct nftnl_rule *r; + + list_for_each_entry(r, &c->rule_list, head) { + if (!index) + return r; + index--; + } + return NULL; +} + struct nftnl_rule_iter { const struct nftnl_chain *c; struct nftnl_rule *cur; @@ -856,6 +870,20 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, return 0; } +EXPORT_SYMBOL(nftnl_chain_list_lookup_byname); +struct nftnl_chain * +nftnl_chain_list_lookup_byname(struct nftnl_chain_list *chain_list, + const char *chain) +{ + struct nftnl_chain *c; + + list_for_each_entry(c, &chain_list->list, head) { + if (!strcmp(chain, c->name)) + return c; + } + return NULL; +} + struct nftnl_chain_list_iter { const struct nftnl_chain_list *list; struct nftnl_chain *cur; diff --git a/src/libnftnl.map b/src/libnftnl.map index 96d5b5f..0d3be32 100644 --- a/src/libnftnl.map +++ b/src/libnftnl.map @@ -345,4 +345,7 @@ LIBNFTNL_12 { nftnl_rule_iter_create; nftnl_rule_iter_next; nftnl_rule_iter_destroy; + + nftnl_chain_list_lookup_byname; + nftnl_rule_lookup_byindex; } LIBNFTNL_11; |