diff options
author | Florian Westphal <fw@strlen.de> | 2017-06-07 17:13:24 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2017-06-07 17:28:50 +0200 |
commit | cb8f81ac3079a5bb4b9bf49215f24db10fd8914f (patch) | |
tree | 17d7e43d0653adf05be609a6ef9b2fe78b15398d /src/netlink_delinearize.c | |
parent | 87cd3bcd69d7ada1163a06a48307cd67d2ea216f (diff) |
netlink_delinearize: prefer ct event set foo,bar over 'set foo|bar'
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>
Diffstat (limited to 'src/netlink_delinearize.c')
-rw-r--r-- | src/netlink_delinearize.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index b355eff4..3ee07c0a 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -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) |