From: Liping Zhang Date: Mon, 22 Aug 2016 15:34:15 +0000 (+0800) Subject: parser_bison: keep snat/dnat existing syntax unchanged X-Git-Tag: v0.7~112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c12c09041ec55daa4c6562d61be81f4ecdfb7fd8;p=thirdparty%2Fnftables.git parser_bison: keep snat/dnat existing syntax unchanged We should keep existing syntax unchanged, and this was emphasized in the commit 850f0a56b6ad ("src: add 'to' for snat and dnat")'s commit log: "Existing syntax is still preserved, but the listing shows the one including 'to'." This problem was found by running shell test: # ./run-tests.sh [ ... ] W: [FAILED] ./testcases/maps/anonymous_snat_map_0 I: [OK] ./testcases/maps/map_with_flags_0 W: [FAILED] ./testcases/maps/named_snat_map_0 [ ... ] Fixes: 850f0a56b6ad ("src: add 'to' for snat and dnat") Signed-off-by: Liping Zhang Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/parser_bison.y b/src/parser_bison.y index 8025415c..bf436086 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1649,15 +1649,28 @@ stmt_expr : map_stmt_expr | primary_rhs_expr ; -nat_stmt_args : TO stmt_expr +nat_stmt_args : stmt_expr + { + $0->nat.addr = $1; + } + | TO stmt_expr { $0->nat.addr = $2; } + | stmt_expr COLON stmt_expr + { + $0->nat.addr = $1; + $0->nat.proto = $3; + } | TO stmt_expr COLON stmt_expr { $0->nat.addr = $2; $0->nat.proto = $4; } + | COLON stmt_expr + { + $0->nat.proto = $2; + } | TO COLON stmt_expr { $0->nat.proto = $3;