diff options
author | Phil Sutter <phil@nwl.cc> | 2020-12-17 15:52:03 +0100 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2021-11-30 14:57:46 +0100 |
commit | 7cd0c8b3b8dd4251edd8a571c4d753a26b1c27e0 (patch) | |
tree | 3f3cd237c62aa17d75ec29cec4463a38340b1b75 /src/netlink_linearize.c | |
parent | 40e2414b74a1b8370decae5dea6395200dfb1e6d (diff) |
mnl: Fix for missing info in rule dumps
Commit 0e52cab1e64ab improved error reporting by adding rule's table and
chain names to netlink message directly, prefixed by their location
info. This in turn caused netlink dumps of the rule to not contain table
and chain name anymore. Fix this by inserting the missing info before
dumping and remove it afterwards to not cause duplicated entries in
netlink message.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'src/netlink_linearize.c')
-rw-r--r-- | src/netlink_linearize.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index 111102fd..34a6e1a9 100644 --- a/src/netlink_linearize.c +++ b/src/netlink_linearize.c @@ -1673,5 +1673,16 @@ void netlink_linearize_rule(struct netlink_ctx *ctx, nftnl_udata_buf_free(udata); } - netlink_dump_rule(lctx->nlr, ctx); + if (ctx->nft->debug_mask & NFT_DEBUG_NETLINK) { + nftnl_rule_set_str(lctx->nlr, NFTNL_RULE_TABLE, + rule->handle.table.name); + if (rule->handle.chain.name) + nftnl_rule_set_str(lctx->nlr, NFTNL_RULE_CHAIN, + rule->handle.chain.name); + + netlink_dump_rule(lctx->nlr, ctx); + + nftnl_rule_unset(lctx->nlr, NFTNL_RULE_CHAIN); + nftnl_rule_unset(lctx->nlr, NFTNL_RULE_TABLE); + } } |