summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiping Zhang <liping.zhang@spreadtrum.com>2016-08-22 23:34:15 +0800
committerPablo Neira Ayuso <pablo@netfilter.org>2016-08-22 18:27:43 +0200
commitc12c09041ec55daa4c6562d61be81f4ecdfb7fd8 (patch)
treecb5eb9f0b586b8ca2c7a1d0c2aecef8e98a0f84c
parent0d21d1ec727cd8cad9cc26b74a6db1ced6739189 (diff)
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 <liping.zhang@spreadtrum.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/parser_bison.y15
1 files changed, 14 insertions, 1 deletions
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
+ {
+ $<stmt>0->nat.addr = $1;
+ }
+ | TO stmt_expr
{
$<stmt>0->nat.addr = $2;
}
+ | stmt_expr COLON stmt_expr
+ {
+ $<stmt>0->nat.addr = $1;
+ $<stmt>0->nat.proto = $3;
+ }
| TO stmt_expr COLON stmt_expr
{
$<stmt>0->nat.addr = $2;
$<stmt>0->nat.proto = $4;
}
+ | COLON stmt_expr
+ {
+ $<stmt>0->nat.proto = $2;
+ }
| TO COLON stmt_expr
{
$<stmt>0->nat.proto = $3;