From 4aba100e593f28105be300dc888935fad5dc822f Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Sun, 18 Mar 2018 21:31:29 +0100 Subject: rule: reset cache iff there is an existing cache If genid is unset, then do not reset existing cache. In the kernel, generation ID is assumed to be always != zero. This patch fixes: nft 'add table x; add chain x y;' that allow us to send several commands in one single batch from the command line. Signed-off-by: Pablo Neira Ayuso --- src/rule.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rule.c b/src/rule.c index 4334efac..c6560036 100644 --- a/src/rule.c +++ b/src/rule.c @@ -165,7 +165,9 @@ replay: genid = netlink_genid_get(&ctx); if (genid && genid == cache->genid) return 0; - cache_release(cache); + if (cache->genid) + cache_release(cache); + ret = cache_init(&ctx, cmd); if (ret < 0) { cache_release(cache); -- cgit v1.2.3