summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2018-05-28 17:00:31 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-05-28 17:01:14 +0200
commit9ce30532e00cc3acab473a57da98bfcfdab33da6 (patch)
tree1b455ad7be297851f942657113aeb01cb5232dae
parentbb4b75aea5c002c940c2c08535f2e34f5ecf4257 (diff)
rule: add nftnl_rule_list_insert_at()
Allow to add rule object before any existing rule. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--include/libnftnl/rule.h1
-rw-r--r--src/libnftnl.map4
-rw-r--r--src/rule.c6
3 files changed, 11 insertions, 0 deletions
diff --git a/include/libnftnl/rule.h b/include/libnftnl/rule.h
index 9479943..765d2ce 100644
--- a/include/libnftnl/rule.h
+++ b/include/libnftnl/rule.h
@@ -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);
diff --git a/src/libnftnl.map b/src/libnftnl.map
index a24fe9b..0d6b20c 100644
--- a/src/libnftnl.map
+++ b/src/libnftnl.map
@@ -342,3 +342,7 @@ LIBNFTNL_7 {
nftnl_flowtable_list_foreach;
} LIBNFTNL_6;
+
+LIBNFTNL_8 {
+ nftnl_rule_list_insert_at;
+} LIBNFTNL_7;
diff --git a/src/rule.c b/src/rule.c
index e4cba1f..146b06c 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -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)
{