diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/netlink_delinearize.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 3bb143b8..7e4e38c4 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -81,9 +81,13 @@ static void netlink_parse_immediate(struct netlink_parse_ctx *ctx, struct stmt *stmt; struct expr *expr; - if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_VERDICT)) + if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_VERDICT)) { nld.verdict = nft_rule_expr_get_u32(nle, NFT_EXPR_IMM_VERDICT); - else if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_DATA)) { + if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_CHAIN)) { + nld.chain = nft_rule_expr_get(nle, NFT_EXPR_IMM_CHAIN, + &nld.len); + } + } else if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_DATA)) { nld.value = nft_rule_expr_get(nle, NFT_EXPR_IMM_DATA, &nld.len); } |