summaryrefslogtreecommitdiffstats
path: root/src/set.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-06-13 21:15:05 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-06-17 00:38:51 +0200
commit283ea9e229fa362836992c61e4dcef4aef1a8564 (patch)
tree5fed00940921389ca34ca9a3ac08793769be9754 /src/set.c
parentfaa855f4deaded25781a41af19ebfe82fa77bfc0 (diff)
src: add nft_*_list_foreach
This patch adds a simplied iterator interface. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/set.c')
-rw-r--r--src/set.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/set.c b/src/set.c
index 8e8adad..4d16062 100644
--- a/src/set.c
+++ b/src/set.c
@@ -364,6 +364,21 @@ void nft_set_list_add(struct nft_set *s, struct nft_set_list *list)
}
EXPORT_SYMBOL(nft_set_list_add);
+int nft_set_list_foreach(struct nft_set_list *set_list,
+ int (*cb)(struct nft_set *t, void *data), void *data)
+{
+ struct nft_set *cur, *tmp;
+ int ret;
+
+ list_for_each_entry_safe(cur, tmp, &set_list->list, head) {
+ ret = cb(cur, data);
+ if (ret < 0)
+ return ret;
+ }
+ return 0;
+}
+EXPORT_SYMBOL(nft_set_list_foreach);
+
struct nft_set_list_iter {
struct nft_set_list *list;
struct nft_set *cur;