]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
scanner: reject: Move to own scope
authorPhil Sutter <phil@nwl.cc>
Tue, 27 Jul 2021 14:38:59 +0000 (16:38 +0200)
committerPhil Sutter <phil@nwl.cc>
Tue, 1 Mar 2022 09:54:03 +0000 (10:54 +0100)
Two more keywords isolated.

Signed-off-by: Phil Sutter <phil@nwl.cc>
include/parser.h
src/parser_bison.y
src/scanner.l

index 090fd78871a6e8b5005e00d05709917932da21e5..08bdeaca250b273ac7e414a7af7fbb83764c028a 100644 (file)
@@ -72,6 +72,7 @@ enum startcond_type {
        PARSER_SC_EXPR_UDPLITE,
 
        PARSER_SC_STMT_LOG,
+       PARSER_SC_STMT_REJECT,
        PARSER_SC_STMT_SYNPROXY,
 };
 
index 83efb7db7e3918eac758ce7cb7ba4704e278b793..2580220377741c34357486bf129eaa5d88fb15c9 100644 (file)
@@ -958,6 +958,7 @@ close_scope_numgen  : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_NUMGE
 close_scope_osf                : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_OSF); };
 close_scope_quota      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_QUOTA); };
 close_scope_queue      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_QUEUE); };
+close_scope_reject     : { scanner_pop_start_cond(nft->scanner, PARSER_SC_STMT_REJECT); };
 close_scope_reset      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_CMD_RESET); };
 close_scope_rt         : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_RT); };
 close_scope_sctp       : { scanner_pop_start_cond(nft->scanner, PARSER_SC_SCTP); };
@@ -2838,7 +2839,7 @@ stmt                      :       verdict_stmt
                        |       stateful_stmt
                        |       meta_stmt
                        |       log_stmt        close_scope_log
-                       |       reject_stmt
+                       |       reject_stmt     close_scope_reject
                        |       nat_stmt
                        |       tproxy_stmt
                        |       queue_stmt
index 97545b7057ab75dff416107678d9dfe8bd1cce65..6ef20512f6b3586384def1c754631dbcd5c6c51d 100644 (file)
@@ -238,6 +238,7 @@ addrstring  ({macaddr}|{ip4addr}|{ip6addr})
 %s SCANSTATE_EXPR_UDPLITE
 
 %s SCANSTATE_STMT_LOG
+%s SCANSTATE_STMT_REJECT
 %s SCANSTATE_STMT_SYNPROXY
 
 %%
@@ -428,9 +429,11 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr})
 "hour"                 { return HOUR; }
 "day"                  { return DAY; }
 
-"reject"               { return _REJECT; }
-"with"                 { return WITH; }
-"icmpx"                        { return ICMPX; }
+"reject"               { scanner_push_start_cond(yyscanner, SCANSTATE_STMT_REJECT); return _REJECT; }
+<SCANSTATE_STMT_REJECT>{
+       "with"                  { return WITH; }
+       "icmpx"                 { return ICMPX; }
+}
 
 "snat"                 { return SNAT; }
 "dnat"                 { return DNAT; }