]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
nft: cache: Eliminate init_chain_cache()
authorPhil Sutter <phil@nwl.cc>
Tue, 31 Mar 2020 01:09:26 +0000 (03:09 +0200)
committerPhil Sutter <phil@nwl.cc>
Mon, 11 May 2020 12:28:28 +0000 (14:28 +0200)
The function is always called immediately after fetch_table_cache(), so
merge it into the latter.

Signed-off-by: Phil Sutter <phil@nwl.cc>
iptables/nft-cache.c

index a0c76705c848e856f3feed57016a6902f7742e6f..369692fe44fc73d217cc4ee132344399d8b6cae6 100644 (file)
@@ -86,7 +86,7 @@ static int fetch_table_cache(struct nft_handle *h)
        char buf[16536];
        struct nlmsghdr *nlh;
        struct nftnl_table_list *list;
-       int ret;
+       int i, ret;
 
        if (h->cache->tables)
                return 0;
@@ -104,13 +104,6 @@ static int fetch_table_cache(struct nft_handle *h)
 
        h->cache->tables = list;
 
-       return 1;
-}
-
-static int init_chain_cache(struct nft_handle *h)
-{
-       int i;
-
        for (i = 0; i < NFT_TABLE_MAX; i++) {
                enum nft_table_type type = h->tables[i].type;
 
@@ -119,9 +112,10 @@ static int init_chain_cache(struct nft_handle *h)
 
                h->cache->table[type].chains = nftnl_chain_list_alloc();
                if (!h->cache->table[type].chains)
-                       return -1;
+                       return 0;
        }
-       return 0;
+
+       return 1;
 }
 
 struct nftnl_chain_list_cb_data {
@@ -458,7 +452,6 @@ __nft_build_cache(struct nft_handle *h, enum nft_cache_level level,
        switch (h->cache_level) {
        case NFT_CL_NONE:
                fetch_table_cache(h);
-               init_chain_cache(h);
                if (level == NFT_CL_TABLES)
                        break;
                /* fall through */
@@ -505,7 +498,6 @@ void nft_build_cache(struct nft_handle *h, struct nftnl_chain *c)
 void nft_fake_cache(struct nft_handle *h)
 {
        fetch_table_cache(h);
-       init_chain_cache(h);
 
        h->cache_level = NFT_CL_FAKE;
        mnl_genid_get(h, &h->nft_genid);