summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--iptables/nft-cache.c16
-rw-r--r--iptables/nft-cache.h1
-rw-r--r--iptables/xtables-restore.c2
3 files changed, 4 insertions, 15 deletions
diff --git a/iptables/nft-cache.c b/iptables/nft-cache.c
index e0c13870..2c6a1708 100644
--- a/iptables/nft-cache.c
+++ b/iptables/nft-cache.c
@@ -442,6 +442,8 @@ __nft_build_cache(struct nft_handle *h, enum nft_cache_level level,
if (h->cache_level >= NFT_CL_TABLES)
fetch_table_cache(h);
+ if (h->cache_level == NFT_CL_FAKE)
+ return;
if (h->cache_level >= NFT_CL_CHAINS)
fetch_chain_cache(h, t, chain);
if (h->cache_level >= NFT_CL_SETS)
@@ -450,15 +452,6 @@ __nft_build_cache(struct nft_handle *h, enum nft_cache_level level,
fetch_rule_cache(h, t);
}
-void nft_fake_cache(struct nft_handle *h)
-{
- fetch_table_cache(h);
-
- h->cache_level = NFT_CL_FAKE;
- h->cache_init = true;
- mnl_genid_get(h, &h->nft_genid);
-}
-
static void __nft_flush_cache(struct nft_handle *h)
{
if (!h->cache_index) {
@@ -570,10 +563,7 @@ void nft_rebuild_cache(struct nft_handle *h)
h->cache_init = false;
}
- if (h->cache_level == NFT_CL_FAKE)
- nft_fake_cache(h);
- else
- __nft_build_cache(h, h->cache_level, NULL, NULL, NULL);
+ __nft_build_cache(h, h->cache_level, NULL, NULL, NULL);
}
void nft_cache_build(struct nft_handle *h)
diff --git a/iptables/nft-cache.h b/iptables/nft-cache.h
index 8c63d8d5..01dd15e1 100644
--- a/iptables/nft-cache.h
+++ b/iptables/nft-cache.h
@@ -4,7 +4,6 @@
struct nft_handle;
void nft_cache_level_set(struct nft_handle *h, int level);
-void nft_fake_cache(struct nft_handle *h);
void nft_rebuild_cache(struct nft_handle *h);
void nft_release_cache(struct nft_handle *h);
void flush_chain_cache(struct nft_handle *h, const char *tablename);
diff --git a/iptables/xtables-restore.c b/iptables/xtables-restore.c
index 0b0febdf..28ef366c 100644
--- a/iptables/xtables-restore.c
+++ b/iptables/xtables-restore.c
@@ -261,7 +261,7 @@ void xtables_restore_parse(struct nft_handle *h,
char buffer[10240] = {};
if (!h->noflush)
- nft_fake_cache(h);
+ nft_cache_level_set(h, NFT_CL_FAKE);
line = 0;
while (fgets(buffer, sizeof(buffer), p->in)) {