@@ -84,6 +84,7 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list);
int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list);
void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list);
void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list);
+void nftnl_rule_list_insert_at(struct nftnl_rule *r, struct nftnl_rule *pos);
void nftnl_rule_list_del(struct nftnl_rule *r);
int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, int (*cb)(struct nftnl_rule *t, void *data), void *data);
@@ -342,3 +342,7 @@ LIBNFTNL_7 {
nftnl_flowtable_list_foreach;
} LIBNFTNL_6;
+
+LIBNFTNL_8 {
+ nftnl_rule_list_insert_at;
+} LIBNFTNL_7;
@@ -986,6 +986,12 @@ void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
list_add(&r->head, &list->list);
}
+EXPORT_SYMBOL(nftnl_rule_list_insert_at);
+void nftnl_rule_list_insert_at(struct nftnl_rule *r, struct nftnl_rule *pos)
+{
+ list_add(&r->head, &pos->head);
+}
+
EXPORT_SYMBOL(nftnl_rule_list_add_tail);
void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
{
Allow to add rule object before any existing rule. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> --- include/libnftnl/rule.h | 1 + src/libnftnl.map | 4 ++++ src/rule.c | 6 ++++++ 3 files changed, 11 insertions(+)