From 6dc1c3d8bb64077da7f3f28c7368fb087d10a492 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 24 Oct 2018 19:18:50 +0200 Subject: src: remove nftnl_rule_cmp() and nftnl_expr_cmp() These functions are not very useful, rule comparison from this layer does not work well with implicit set definitions. This infrastructure was added as an attempt to support for deletion by name from this layer, which should be done from higher level libnftables library. Finally, we never had a client for this code in git.netfilter.org. Let's remove it and bump libversion for safety reasons. Signed-off-by: Pablo Neira Ayuso --- src/rule.c | 31 ------------------------------- 1 file changed, 31 deletions(-) (limited to 'src/rule.c') diff --git a/src/rule.c b/src/rule.c index c3c8a8b..9af8fae 100644 --- a/src/rule.c +++ b/src/rule.c @@ -740,37 +740,6 @@ void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) xfree(iter); } -EXPORT_SYMBOL(nftnl_rule_cmp); -bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) -{ - struct nftnl_expr_iter it1, it2; - struct nftnl_expr *e1, *e2; - unsigned int eq = 1; - - if (r1->flags & r1->flags & (1 << NFTNL_RULE_TABLE)) - eq &= !strcmp(r1->table, r2->table); - if (r1->flags & r1->flags & (1 << NFTNL_RULE_CHAIN)) - eq &= !strcmp(r1->chain, r2->chain); - if (r1->flags & r1->flags & (1 << NFTNL_RULE_COMPAT_FLAGS)) - eq &= (r1->compat.flags == r2->compat.flags); - if (r1->flags & r1->flags & (1 << NFTNL_RULE_COMPAT_PROTO)) - eq &= (r1->compat.proto == r2->compat.proto); - - nftnl_expr_iter_init(r1, &it1); - nftnl_expr_iter_init(r2, &it2); - e1 = nftnl_expr_iter_next(&it1); - e2 = nftnl_expr_iter_next(&it2); - while (eq && e1 && e2) { - eq = nftnl_expr_cmp(e1, e2); - - e1 = nftnl_expr_iter_next(&it1); - e2 = nftnl_expr_iter_next(&it2); - } - eq &= (!e1 && !e2); - - return eq; -} - struct nftnl_rule_list { struct list_head list; }; -- cgit v1.2.3