return flags;
}
-static unsigned int evaluate_cache_list(struct cmd *cmd, unsigned int flags,
+static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd,
+ unsigned int flags,
struct nft_cache_filter *filter)
{
switch (cmd->obj) {
filter->table = cmd->handle.table.name;
filter->set = cmd->handle.set.name;
}
- flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
+ if (nft_output_terse(&nft->output))
+ flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH;
+ else
+ flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
break;
case CMD_OBJ_CHAINS:
flags |= NFT_CACHE_TABLE | NFT_CACHE_CHAIN;
case CMD_OBJ_FLOWTABLES:
flags |= NFT_CACHE_TABLE | NFT_CACHE_FLOWTABLE;
break;
+ case CMD_OBJ_RULESET:
+ if (nft_output_terse(&nft->output))
+ flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH;
+ else
+ flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
default:
flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
break;
flags |= NFT_CACHE_TABLE;
break;
case CMD_LIST:
- flags |= evaluate_cache_list(cmd, flags, filter);
+ flags |= evaluate_cache_list(nft, cmd, flags, filter);
break;
case CMD_MONITOR:
flags |= NFT_CACHE_FULL;