From cd4a4a385793bc423062c564eb6504d2c565f481 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 25 Oct 2021 23:32:34 +0200 Subject: cache: always set on NFT_CACHE_REFRESH for listing This flag forces a refresh of the cache on list commands, several object types are missing this flag, this fixes nft --interactive mode. Signed-off-by: Pablo Neira Ayuso --- src/cache.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cache.c b/src/cache.c index c602f93a..3cbf99e8 100644 --- a/src/cache.c +++ b/src/cache.c @@ -136,7 +136,7 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd, if (filter && cmd->handle.table.name) filter->table = cmd->handle.table.name; - flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH; + flags |= NFT_CACHE_FULL; break; case CMD_OBJ_SET: case CMD_OBJ_MAP: @@ -145,9 +145,9 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd, filter->set = cmd->handle.set.name; } if (nft_output_terse(&nft->output)) - flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH; + flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM); else - flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH; + flags |= NFT_CACHE_FULL; break; case CMD_OBJ_CHAINS: flags |= NFT_CACHE_TABLE | NFT_CACHE_CHAIN; @@ -161,13 +161,14 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd, break; case CMD_OBJ_RULESET: if (nft_output_terse(&nft->output)) - flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH; + flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM); else - flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH; + flags |= NFT_CACHE_FULL; default: - flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH; + flags |= NFT_CACHE_FULL; break; } + flags |= NFT_CACHE_REFRESH; return flags; } -- cgit v1.2.3