]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
nft: simplify chain lookup in do_list_chain
authorChander Govindarajan <mail@chandergovind.org>
Wed, 25 May 2022 09:55:43 +0000 (15:25 +0530)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 31 May 2022 08:21:34 +0000 (10:21 +0200)
use the chain_cache_find function for faster lookup of chain instead of
iterating over all chains in table

Signed-off-by: ChanderG <mail@chandergovind.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/rule.c

index 799092eb15c588c315ce4db291c952a2d6c71aac..7f61bdc1cec9984f08de81ba7989d6bdfb09fb21 100644 (file)
@@ -2309,13 +2309,9 @@ static int do_list_chain(struct netlink_ctx *ctx, struct cmd *cmd,
 
        table_print_declaration(table, &ctx->nft->output);
 
-       list_for_each_entry(chain, &table->chain_cache.list, cache.list) {
-               if (chain->handle.family != cmd->handle.family ||
-                   strcmp(cmd->handle.chain.name, chain->handle.chain.name) != 0)
-                       continue;
-
+       chain = chain_cache_find(table, cmd->handle.chain.name);
+       if (chain)
                chain_print(chain, &ctx->nft->output);
-       }
 
        nft_print(&ctx->nft->output, "}\n");