From 88e53b5dac2b55905dbf86d7def2fee51bf2a8dd Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 9 Nov 2021 10:35:05 +0100 Subject: cache: move list filter under struct Wrap the table and set fields for list filtering to prepare for the introduction element filters. Signed-off-by: Pablo Neira Ayuso --- src/cache.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/cache.c b/src/cache.c index 0cddd1e1..58397551 100644 --- a/src/cache.c +++ b/src/cache.c @@ -134,19 +134,19 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd, switch (cmd->obj) { case CMD_OBJ_TABLE: if (filter && cmd->handle.table.name) - filter->table = cmd->handle.table.name; + filter->list.table = cmd->handle.table.name; flags |= NFT_CACHE_FULL; break; case CMD_OBJ_SET: case CMD_OBJ_MAP: if (filter && cmd->handle.table.name && cmd->handle.set.name) { - filter->table = cmd->handle.table.name; - filter->set = cmd->handle.set.name; + filter->list.table = cmd->handle.table.name; + filter->list.set = cmd->handle.set.name; } if (nft_output_terse(&nft->output)) flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM_BIT); - else if (filter->table && filter->set) + else if (filter->list.table && filter->list.set) flags |= NFT_CACHE_TABLE | NFT_CACHE_SET | NFT_CACHE_SETELEM; else flags |= NFT_CACHE_FULL; @@ -183,8 +183,8 @@ unsigned int nft_cache_evaluate(struct nft_ctx *nft, struct list_head *cmds, struct cmd *cmd; list_for_each_entry(cmd, cmds, list) { - if (filter->table && cmd->op != CMD_LIST) - memset(filter, 0, sizeof(*filter)); + if (filter->list.table && cmd->op != CMD_LIST) + memset(&filter->list, 0, sizeof(filter->list)); switch (cmd->op) { case CMD_ADD: @@ -377,9 +377,9 @@ static int set_cache_cb(struct nftnl_set *nls, void *arg) if (!set) return -1; - if (ctx->filter && ctx->filter->set && - (strcmp(ctx->filter->table, set->handle.table.name) || - strcmp(ctx->filter->set, set->handle.set.name))) { + if (ctx->filter && ctx->filter->list.set && + (strcmp(ctx->filter->list.table, set->handle.table.name) || + strcmp(ctx->filter->list.set, set->handle.set.name))) { set_free(set); return 0; } @@ -637,8 +637,8 @@ static int cache_init_tables(struct netlink_ctx *ctx, struct handle *h, list_for_each_entry_safe(table, next, &ctx->list, list) { list_del(&table->list); - if (filter && filter->table && - (strcmp(filter->table, table->handle.table.name))) { + if (filter && filter->list.table && + (strcmp(filter->list.table, table->handle.table.name))) { table_free(table); continue; } -- cgit v1.2.3