]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
set{,_elem}: Drop nftnl_set{,_elem}_clone()
authorPhil Sutter <phil@nwl.cc>
Thu, 19 Mar 2026 09:00:02 +0000 (10:00 +0100)
committerPhil Sutter <phil@nwl.cc>
Thu, 19 Mar 2026 09:31:42 +0000 (10:31 +0100)
These functions were never exported and are not used internally anymore.
Maybe due to that, they became incorrect (e.g., they ignore expr_list)
so drop them altogether.

Fixes: 80077787f8f21 ("src: remove json support")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Acked-by: Florian Westphal <fw@strlen.de>
include/libnftnl/set.h
src/set.c
src/set_elem.c

index f2edca20f9e078c73d9dea58bcb92d6c020057ae..c21079f123984db4f3efb906e23a8ccceeb0880b 100644 (file)
@@ -42,8 +42,6 @@ struct nftnl_set;
 struct nftnl_set *nftnl_set_alloc(void);
 void nftnl_set_free(const struct nftnl_set *s);
 
-struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set);
-
 bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr);
 void nftnl_set_unset(struct nftnl_set *s, uint16_t attr);
 int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) __attribute__((deprecated));
@@ -125,8 +123,6 @@ struct nftnl_set_elem;
 struct nftnl_set_elem *nftnl_set_elem_alloc(void);
 void nftnl_set_elem_free(struct nftnl_set_elem *s);
 
-struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem);
-
 void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem);
 
 void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr);
index 54674bca709fdd0c64c6d89773f2287a8989e43d..a017017e1fb6d5321a70b9c9e149206f5c227dd4 100644 (file)
--- a/src/set.c
+++ b/src/set.c
@@ -360,45 +360,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
        return val ? *val : 0;
 }
 
-struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set)
-{
-       struct nftnl_set *newset;
-       struct nftnl_set_elem *elem, *newelem;
-
-       newset = nftnl_set_alloc();
-       if (newset == NULL)
-               return NULL;
-
-       memcpy(newset, set, sizeof(*set));
-
-       if (set->flags & (1 << NFTNL_SET_TABLE)) {
-               newset->table = strdup(set->table);
-               if (!newset->table)
-                       goto err;
-       }
-       if (set->flags & (1 << NFTNL_SET_NAME)) {
-               newset->name = strdup(set->name);
-               if (!newset->name)
-                       goto err;
-       }
-
-       INIT_LIST_HEAD(&newset->element_list);
-       list_for_each_entry(elem, &set->element_list, head) {
-               newelem = nftnl_set_elem_clone(elem);
-               if (newelem == NULL)
-                       goto err;
-
-               list_add_tail(&newelem->head, &newset->element_list);
-       }
-
-       newset->type = NULL;
-
-       return newset;
-err:
-       nftnl_set_free(newset);
-       return NULL;
-}
-
 static void nftnl_set_nlmsg_build_desc_size_payload(struct nlmsghdr *nlh,
                                                    struct nftnl_set *s)
 {
index 3e0ab0cf5087653a677683e86af667c49b1e620c..83c65ee33548d0f2d53497928dee2a681ce56f79 100644 (file)
@@ -292,28 +292,6 @@ uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
        return val;
 }
 
-struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem)
-{
-       struct nftnl_set_elem *newelem;
-
-       newelem = nftnl_set_elem_alloc();
-       if (newelem == NULL)
-               return NULL;
-
-       memcpy(newelem, elem, sizeof(*elem));
-
-       if (elem->flags & (1 << NFTNL_SET_ELEM_CHAIN)) {
-               newelem->data.chain = strdup(elem->data.chain);
-               if (!newelem->data.chain)
-                       goto err;
-       }
-
-       return newelem;
-err:
-       nftnl_set_elem_free(newelem);
-       return NULL;
-}
-
 EXPORT_SYMBOL(nftnl_set_elem_nlmsg_build_payload);
 void nftnl_set_elem_nlmsg_build_payload(struct nlmsghdr *nlh,
                                      struct nftnl_set_elem *e)