diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-05-03 12:11:32 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-05-06 22:48:30 +0200 |
commit | f2be4af9094d47dbd9c028e02ceb8b9d16cd4c02 (patch) | |
tree | 597ce3844fb864fc2348e225d48c69ee1fff6f56 /src/rule.c | |
parent | cf6464267f49866b24a9b185498abf9b57433ecd (diff) |
src: add chain_spec
Store location object in handle to improve error reporting.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
-rw-r--r-- | src/rule.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -31,7 +31,7 @@ void handle_free(struct handle *h) { xfree(h->table.name); - xfree(h->chain); + xfree(h->chain.name); xfree(h->set); xfree(h->flowtable); } @@ -42,8 +42,8 @@ void handle_merge(struct handle *dst, const struct handle *src) dst->family = src->family; if (dst->table.name == NULL && src->table.name != NULL) dst->table.name = xstrdup(src->table.name); - if (dst->chain == NULL && src->chain != NULL) - dst->chain = xstrdup(src->chain); + if (dst->chain.name == NULL && src->chain.name != NULL) + dst->chain.name = xstrdup(src->chain.name); if (dst->set == NULL && src->set != NULL) dst->set = xstrdup(src->set); if (dst->flowtable == NULL && src->flowtable != NULL) @@ -620,7 +620,7 @@ struct chain *chain_alloc(const char *name) init_list_head(&chain->rules); init_list_head(&chain->scope.symbols); if (name != NULL) - chain->handle.chain = xstrdup(name); + chain->handle.chain.name = xstrdup(name); chain->policy = -1; return chain; @@ -658,7 +658,7 @@ struct chain *chain_lookup(const struct table *table, const struct handle *h) struct chain *chain; list_for_each_entry(chain, &table->chains, list) { - if (!strcmp(chain->handle.chain, h->chain)) + if (!strcmp(chain->handle.chain.name, h->chain.name)) return chain; } return NULL; @@ -746,7 +746,7 @@ static const char *chain_policy2str(uint32_t policy) static void chain_print_declaration(const struct chain *chain, struct output_ctx *octx) { - nft_print(octx, "\tchain %s {", chain->handle.chain); + nft_print(octx, "\tchain %s {", chain->handle.chain.name); if (octx->handle > 0) nft_print(octx, " # handle %" PRIu64, chain->handle.handle.id); nft_print(octx, "\n"); @@ -777,7 +777,7 @@ static void chain_print(const struct chain *chain, struct output_ctx *octx) void chain_print_plain(const struct chain *chain, struct output_ctx *octx) { nft_print(octx, "chain %s %s %s", family2str(chain->handle.family), - chain->handle.table.name, chain->handle.chain); + chain->handle.table.name, chain->handle.chain.name); if (chain->flags & CHAIN_F_BASECHAIN) { nft_print(octx, " { type %s hook %s priority %d; policy %s; }", @@ -1754,7 +1754,7 @@ static int do_list_chain(struct netlink_ctx *ctx, struct cmd *cmd, list_for_each_entry(chain, &table->chains, list) { if (chain->handle.family != cmd->handle.family || - strcmp(cmd->handle.chain, chain->handle.chain) != 0) + strcmp(cmd->handle.chain.name, chain->handle.chain.name) != 0) continue; chain_print(chain, ctx->octx); |