diff options
-rw-r--r-- | src/cache.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cache.c b/src/cache.c index a778650a..0c28a28d 100644 --- a/src/cache.c +++ b/src/cache.c @@ -63,6 +63,21 @@ static unsigned int evaluate_cache_del(struct cmd *cmd, unsigned int flags) return flags; } +static unsigned int evaluate_cache_get(struct cmd *cmd, unsigned int flags) +{ + switch (cmd->obj) { + case CMD_OBJ_SETELEM: + flags |= NFT_CACHE_TABLE | + NFT_CACHE_SET | + NFT_CACHE_SETELEM; + break; + default: + break; + } + + return flags; +} + static unsigned int evaluate_cache_flush(struct cmd *cmd, unsigned int flags) { switch (cmd->obj) { @@ -121,6 +136,8 @@ unsigned int cache_evaluate(struct nft_ctx *nft, struct list_head *cmds) flags = evaluate_cache_del(cmd, flags); break; case CMD_GET: + flags = evaluate_cache_get(cmd, flags); + break; case CMD_LIST: case CMD_RESET: case CMD_EXPORT: |