]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink_delinearize: prefer ct event set foo,bar over 'set foo|bar'
authorFlorian Westphal <fw@strlen.de>
Wed, 7 Jun 2017 15:13:24 +0000 (17:13 +0200)
committerFlorian Westphal <fw@strlen.de>
Wed, 7 Jun 2017 15:28:50 +0000 (17:28 +0200)
Translates binop representation to a list-based one, so nft prints
"ct event destroy,new" instead of 'ct event destroy|new'.

Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink_delinearize.c

index b355eff47222e56d548a9a42f82de7a71d914b1c..3ee07c0a1306da1e3dc4fbd5250bc3341631056d 100644 (file)
@@ -2205,8 +2205,13 @@ static void rule_parse_postprocess(struct netlink_parse_ctx *ctx, struct rule *r
                                expr_postprocess(&rctx, &stmt->meta.expr);
                        break;
                case STMT_CT:
-                       if (stmt->ct.expr != NULL)
+                       if (stmt->ct.expr != NULL) {
                                expr_postprocess(&rctx, &stmt->ct.expr);
+
+                               if (stmt->ct.expr->ops->type == EXPR_BINOP)
+                                       stmt->ct.expr = binop_tree_to_list(NULL,
+                                                                          stmt->ct.expr);
+                       }
                        break;
                case STMT_NAT:
                        if (stmt->nat.addr != NULL)