summaryrefslogtreecommitdiffstats
path: root/src/set_elem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/set_elem.c')
-rw-r--r--src/set_elem.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/set_elem.c b/src/set_elem.c
index dae1f8c..209227f 100644
--- a/src/set_elem.c
+++ b/src/set_elem.c
@@ -396,6 +396,22 @@ int nft_set_elem_snprintf(char *buf, size_t size, struct nft_set_elem *e,
}
EXPORT_SYMBOL(nft_set_elem_snprintf);
+int nft_set_elem_foreach(struct nft_set *s,
+ int (*cb)(struct nft_set_elem *e, void *data),
+ void *data)
+{
+ struct nft_set_elem *elem;
+ int ret;
+
+ list_for_each_entry(elem, &s->element_list, head) {
+ ret = cb(elem, data);
+ if (ret < 0)
+ return ret;
+ }
+ return 0;
+}
+EXPORT_SYMBOL(nft_set_elem_foreach);
+
struct nft_set_elems_iter {
struct list_head *list;
struct nft_set_elem *cur;