diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-06-14 14:16:59 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-06-14 14:35:16 +0200 |
commit | dc5372b6e8448549a770f9d09477fd2a9207d69c (patch) | |
tree | f10fff1748da9c53f42c0fed5c707740770d99c0 | |
parent | ef5c498bd166b5284fdf80d95b03daaa7e05556a (diff) |
cache: do not populate the cache in case of flush ruleset command
__CMD_FLUSH_RULESET is a dummy definition that used to skip the netlink
dump to populate the cache. This patch is a workaround until we have a
better infrastructure to track the state of the cache objects.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/rule.h | 1 | ||||
-rw-r--r-- | src/cache.c | 3 | ||||
-rw-r--r-- | src/rule.c | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/include/rule.h b/include/rule.h index dd9df9ec..b41825d0 100644 --- a/include/rule.h +++ b/include/rule.h @@ -462,6 +462,7 @@ enum cmd_ops { CMD_EXPORT, CMD_MONITOR, CMD_DESCRIBE, + __CMD_FLUSH_RULESET, }; /** diff --git a/src/cache.c b/src/cache.c index 532ef425..d7153f6f 100644 --- a/src/cache.c +++ b/src/cache.c @@ -54,6 +54,9 @@ static unsigned int evaluate_cache_flush(struct cmd *cmd) unsigned int completeness = CMD_INVALID; switch (cmd->obj) { + case CMD_OBJ_RULESET: + completeness = __CMD_FLUSH_RULESET; + break; case CMD_OBJ_SET: case CMD_OBJ_MAP: case CMD_OBJ_METER: @@ -210,6 +210,9 @@ static int cache_init(struct netlink_ctx *ctx, enum cmd_ops cmd) }; int ret; + if (cmd == __CMD_FLUSH_RULESET) + return 0; + ret = cache_init_tables(ctx, &handle, &ctx->nft->cache); if (ret < 0) return ret; |