summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cache.c17
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: