]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
set: expose nftnl_set_elem_nlmsg_build()
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 4 Nov 2021 13:09:44 +0000 (14:09 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 4 Nov 2021 20:44:45 +0000 (21:44 +0100)
Expose a function to build one single set element netlink message.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/libnftnl/set.h
src/libnftnl.map
src/set_elem.c

index 1eae024c852347555333fc61ec1b7bbea200d0c4..e2e5795aa9b40b368fd80718893a55117eb83d0b 100644 (file)
@@ -144,6 +144,8 @@ bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr);
 #define nftnl_set_elem_nlmsg_build_hdr nftnl_nlmsg_build_hdr
 void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s);
 void nftnl_set_elem_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set_elem *e);
+struct nlattr *nftnl_set_elem_nlmsg_build(struct nlmsghdr *nlh,
+                                         struct nftnl_set_elem *elem, int i);
 
 int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
                       const char *data, struct nftnl_parse_err *err);
index e707b89cfdfd07dea386f2191f3fd2d4924940e2..ad8f2af060aef1269f2befa43e9e0401adb27c57 100644 (file)
@@ -383,3 +383,7 @@ LIBNFTNL_16 {
   nftnl_expr_add_expr;
   nftnl_expr_expr_foreach;
 } LIBNFTNL_15;
+
+LIBNFTNL_17 {
+  nftnl_set_elem_nlmsg_build;
+} LIBNFTNL_16;
index 90632a2983126d0a76c284179a1befa114a8c35b..edcc4a271b2485c6aaaececbc8e613f321081b05 100644 (file)
@@ -388,8 +388,9 @@ static void nftnl_set_elem_nlmsg_build_def(struct nlmsghdr *nlh,
                mnl_attr_put_strz(nlh, NFTA_SET_ELEM_LIST_TABLE, s->table);
 }
 
-static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh,
-                                             struct nftnl_set_elem *elem, int i)
+EXPORT_SYMBOL(nftnl_set_elem_nlmsg_build);
+struct nlattr *nftnl_set_elem_nlmsg_build(struct nlmsghdr *nlh,
+                                         struct nftnl_set_elem *elem, int i)
 {
        struct nlattr *nest2;
 
@@ -414,7 +415,7 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set
 
        nest1 = mnl_attr_nest_start(nlh, NFTA_SET_ELEM_LIST_ELEMENTS);
        list_for_each_entry(elem, &s->element_list, head)
-               nftnl_set_elem_build(nlh, elem, ++i);
+               nftnl_set_elem_nlmsg_build(nlh, elem, ++i);
 
        mnl_attr_nest_end(nlh, nest1);
 }
@@ -898,7 +899,7 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
        nest1 = mnl_attr_nest_start(nlh, NFTA_SET_ELEM_LIST_ELEMENTS);
        elem = nftnl_set_elems_iter_next(iter);
        while (elem != NULL) {
-               nest2 = nftnl_set_elem_build(nlh, elem, ++i);
+               nest2 = nftnl_set_elem_nlmsg_build(nlh, elem, ++i);
                if (nftnl_attr_nest_overflow(nlh, nest1, nest2)) {
                        /* Go back to previous not to miss this element */
                        iter->cur = list_entry(iter->cur->head.prev,