From a698868d52a550bab4867c0dc502037155baa11d Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 12 Dec 2014 19:26:46 +0100 Subject: parser: use 'redirect to PORT' instead of 'redirect :PORT' Small syntax update suggested by Patrick. Signed-off-by: Pablo Neira Ayuso --- src/parser_bison.y | 5 +++-- src/scanner.l | 1 + src/statement.c | 2 +- tests/regression/ip/redirect.t | 24 ++++++++++++------------ tests/regression/ip6/redirect.t | 18 +++++++++--------- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/parser_bison.y b/src/parser_bison.y index 515a11a0..99dbd088 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -196,6 +196,7 @@ static void location_update(struct location *loc, struct location *rhs, int n) %token JUMP "jump" %token GOTO "goto" %token RETURN "return" +%token TO "to" %token CONSTANT "constant" %token INTERVAL "interval" @@ -1439,7 +1440,7 @@ redir_stmt : redir_stmt_alloc redir_stmt_arg redir_stmt_alloc : REDIRECT { $$ = redir_stmt_alloc(&@$); } ; -redir_stmt_arg : COLON expr +redir_stmt_arg : TO expr { $0->redir.proto = $2; } @@ -1447,7 +1448,7 @@ redir_stmt_arg : COLON expr { $0->redir.flags = $1; } - | COLON expr nf_nat_flags + | TO expr nf_nat_flags { $0->redir.proto = $2; $0->redir.flags = $3; diff --git a/src/scanner.l b/src/scanner.l index 17231594..ed87da61 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -250,6 +250,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) "jump" { return JUMP; } "goto" { return GOTO; } "return" { return RETURN; } +"to" { return TO; } "inet" { return INET; } diff --git a/src/statement.c b/src/statement.c index 83abfeac..d72c6e9b 100644 --- a/src/statement.c +++ b/src/statement.c @@ -354,7 +354,7 @@ static void redir_stmt_print(const struct stmt *stmt) printf("redirect"); if (stmt->redir.proto) { - printf(" :"); + printf(" to "); expr_print(stmt->redir.proto); } diff --git a/tests/regression/ip/redirect.t b/tests/regression/ip/redirect.t index ec88db17..bbf440d1 100644 --- a/tests/regression/ip/redirect.t +++ b/tests/regression/ip/redirect.t @@ -17,22 +17,22 @@ udp dport 53 redirect persistent,fully-random;ok;udp dport 53 redirect fully-ran udp dport 53 redirect persistent,fully-random,random;ok;udp dport 53 redirect random,fully-random,persistent # port specification -tcp dport 22 redirect :22;ok -udp dport 1234 redirect :4321;ok -ip daddr 172.16.0.1 udp dport 9998 redirect :6515;ok -tcp dport 39128 redirect :993;ok -redirect :1234;fail -redirect :12341111;fail +tcp dport 22 redirect to 22;ok +udp dport 1234 redirect to 4321;ok +ip daddr 172.16.0.1 udp dport 9998 redirect to 6515;ok +tcp dport 39128 redirect to 993;ok +redirect to 1234;fail +redirect to 12341111;fail # both port and nf_nat flags -tcp dport 9128 redirect :993 random;ok -tcp dport 9128 redirect :993 fully-random;ok -tcp dport 9128 redirect :123 persistent;ok -tcp dport 9128 redirect :123 random,persistent;ok +tcp dport 9128 redirect to 993 random;ok +tcp dport 9128 redirect to 993 fully-random;ok +tcp dport 9128 redirect to 123 persistent;ok +tcp dport 9128 redirect to 123 random,persistent;ok # nf_nat flags is the last argument -udp dport 1234 redirect random :123;fail -udp dport 21234 redirect persistent,fully-random :431;fail +udp dport 1234 redirect random to 123;fail +udp dport 21234 redirect persistent,fully-random to 431;fail # redirect is a terminal statement tcp dport 22 redirect counter packets 0 bytes 0 accept;fail diff --git a/tests/regression/ip6/redirect.t b/tests/regression/ip6/redirect.t index f6c98c0d..730d7339 100644 --- a/tests/regression/ip6/redirect.t +++ b/tests/regression/ip6/redirect.t @@ -19,19 +19,19 @@ udp dport 53 redirect persistent,fully-random;ok;udp dport 53 redirect fully-ran udp dport 53 redirect persistent,fully-random,random;ok;udp dport 53 redirect random,fully-random,persistent # port specification -udp dport 1234 redirect :1234;ok -ip6 daddr fe00::cafe udp dport 9998 redirect :6515;ok -tcp dport 39128 redirect :993;ok -redirect :1234;fail -redirect :12341111;fail +udp dport 1234 redirect to 1234;ok +ip6 daddr fe00::cafe udp dport 9998 redirect to 6515;ok +tcp dport 39128 redirect to 993;ok +redirect to 1234;fail +redirect to 12341111;fail # both port and nf_nat flags -tcp dport 9128 redirect :993 random;ok -tcp dport 9128 redirect :993 fully-random,persistent;ok +tcp dport 9128 redirect to 993 random;ok +tcp dport 9128 redirect to 993 fully-random,persistent;ok # nf_nat flags are the last argument -tcp dport 9128 redirect persistent :123;fail -tcp dport 9128 redirect random,persistent :123;fail +tcp dport 9128 redirect persistent to 123;fail +tcp dport 9128 redirect random,persistent to 123;fail # redirect is a terminal statement tcp dport 22 redirect counter packets 0 bytes 0 accept;fail -- cgit v1.2.3