]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
scanner: tcp: Move to own scope
authorPhil Sutter <phil@nwl.cc>
Fri, 23 Jul 2021 12:03:19 +0000 (14:03 +0200)
committerPhil Sutter <phil@nwl.cc>
Tue, 1 Mar 2022 09:54:03 +0000 (10:54 +0100)
Apart from header fields, this isolates TCP option types and
fields, too.

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

index fc52747e408dc19d9e8c70a9582937d642e0be07..8a1081a0f4c65a6fd38d82a4acbd770883ee250d 100644 (file)
@@ -945,13 +945,13 @@ close_scope_list  : { scanner_pop_start_cond(nft->scanner, PARSER_SC_CMD_LIST); }
 close_scope_limit      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_LIMIT); };
 close_scope_numgen     : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_NUMGEN); };
 close_scope_quota      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_QUOTA); };
-close_scope_tcp                : { scanner_pop_start_cond(nft->scanner, PARSER_SC_TCP); }
 close_scope_queue      : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_QUEUE); };
 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); };
 close_scope_sctp_chunk : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_SCTP_CHUNK); };
 close_scope_secmark    : { scanner_pop_start_cond(nft->scanner, PARSER_SC_SECMARK); };
 close_scope_socket     : { scanner_pop_start_cond(nft->scanner, PARSER_SC_EXPR_SOCKET); }
+close_scope_tcp                : { scanner_pop_start_cond(nft->scanner, PARSER_SC_TCP); };
 
 close_scope_log                : { scanner_pop_start_cond(nft->scanner, PARSER_SC_STMT_LOG); }
 
index a584b5fba39b4a74acd095c06a739a6190ee0c39..95dcd0330bd3ebebb82a8f464ddfb523b5cddd24 100644 (file)
@@ -468,30 +468,46 @@ addrstring        ({macaddr}|{ip4addr}|{ip6addr})
 
        "ptr"                   { return PTR; }
        "value"                 { return VALUE; }
+
+       "option"                { return OPTION; }
+       "options"               { return OPTIONS; }
 }
 
 <SCANSTATE_TCP>{
-"echo"                 { return ECHO; }
-"eol"                  { return EOL; }
-"fastopen"             { return FASTOPEN; }
-"mptcp"                        { return MPTCP; }
-"md5sig"               { return MD5SIG; }
-"subtype"              { return SUBTYPE; }
-"nop"                  { return NOP; }
-"noop"                 { return NOP; }
-"sack"                 { return SACK; }
-"sack0"                        { return SACK0; }
-"sack1"                        { return SACK1; }
-"sack2"                        { return SACK2; }
-"sack3"                        { return SACK3; }
-"time"                 { return TIME; }
+       /* tcp header fields */
+       "ackseq"                { return ACKSEQ; }
+       "doff"                  { return DOFF; }
+       "window"                { return WINDOW; }
+       "urgptr"                { return URGPTR; }
+
+       /* tcp option types */
+       "echo"                  { return ECHO; }
+       "eol"                   { return EOL; }
+       "maxseg"                { return MSS; }
+       "mss"                   { return MSS; }
+       "nop"                   { return NOP; }
+       "noop"                  { return NOP; }
+       "sack"                  { return SACK; }
+       "sack0"                 { return SACK0; }
+       "sack1"                 { return SACK1; }
+       "sack2"                 { return SACK2; }
+       "sack3"                 { return SACK3; }
+       "fastopen"              { return FASTOPEN; }
+       "mptcp"                 { return MPTCP; }
+       "md5sig"                { return MD5SIG; }
+
+       /* tcp option fields */
+       "left"                  { return LEFT; }
+       "right"                 { return RIGHT; }
+       "count"                 { return COUNT; }
+       "tsval"                 { return TSVAL; }
+       "tsecr"                 { return TSECR; }
+       "subtype"               { return SUBTYPE; }
 
-"count"                        { return COUNT; }
-"left"                 { return LEFT; }
-"right"                        { return RIGHT; }
-"tsval"                        { return TSVAL; }
-"tsecr"                        { return TSECR; }
+       "options"               { return OPTIONS; }
+       "option"                { return OPTION; }
 }
+"time"                 { return TIME; }
 "maxseg"               { return MSS; }
 "mss"                  { return MSS; }
 "sack-permitted"       { return SACK_PERM; }
@@ -540,11 +556,6 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr})
 "port"                 { return PORT; }
 
 "tcp"                  { scanner_push_start_cond(yyscanner, SCANSTATE_TCP); return TCP; }
-"ackseq"               { return ACKSEQ; }
-"doff"                 { return DOFF; }
-"window"               { return WINDOW; }
-"urgptr"               { return URGPTR; }
-"option"               { return OPTION; }
 
 "dccp"                 { return DCCP; }
 
@@ -688,7 +699,6 @@ addrstring  ({macaddr}|{ip4addr}|{ip6addr})
 
 "notrack"              { return NOTRACK; }
 
-"options"              { return OPTIONS; }
 "all"                  { return ALL; }
 
 "xml"                  { return XML; }