]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser: compact ct obj list types
authorFlorian Westphal <fw@strlen.de>
Thu, 4 Mar 2021 01:07:35 +0000 (02:07 +0100)
committerFlorian Westphal <fw@strlen.de>
Sat, 6 Mar 2021 00:12:25 +0000 (01:12 +0100)
Add new ct_cmd_type and avoid copypaste of the ct cmd_list rules.

Signed-off-by: Florian Westphal <fw@strlen.de>
src/parser_bison.y

index c4f3e341333d4b92d22899f7fefb953282ee59a1..bfb181747ca1e9a19ec69db0fa17d0e30103f66e 100644 (file)
@@ -838,7 +838,7 @@ int nft_lex(void *, void *, void *);
 %destructor { expr_free($$); } exthdr_exists_expr
 %type <val>                    exthdr_key
 
-%type <val>                    ct_l4protoname ct_obj_type
+%type <val>                    ct_l4protoname ct_obj_type ct_cmd_type
 
 %type <list>                   timeout_states timeout_state
 %destructor { xfree($$); }     timeout_states timeout_state
@@ -1393,17 +1393,9 @@ list_cmd         :       TABLE           table_spec
                        {
                                $$ = cmd_alloc_obj_ct(CMD_LIST, $2, &$3, &@$, NULL);
                        }
-                       |       CT              HELPERS         TABLE   table_spec
+                       |       CT              ct_cmd_type     TABLE   table_spec
                        {
-                               $$ = cmd_alloc(CMD_LIST, CMD_OBJ_CT_HELPERS, &$4, &@$, NULL);
-                       }
-                       |       CT              TIMEOUT         TABLE           table_spec
-                       {
-                               $$ = cmd_alloc(CMD_LIST, CMD_OBJ_CT_TIMEOUT, &$4, &@$, NULL);
-                       }
-                       |       CT              EXPECTATION             TABLE           table_spec
-                       {
-                               $$ = cmd_alloc(CMD_LIST, CMD_OBJ_CT_EXPECT, &$4, &@$, NULL);
+                               $$ = cmd_alloc(CMD_LIST, $2, &$4, &@$, NULL);
                        }
                        ;
 
@@ -4292,6 +4284,11 @@ ct_obj_type              :       HELPER          { $$ = NFT_OBJECT_CT_HELPER; }
                        |       EXPECTATION     { $$ = NFT_OBJECT_CT_EXPECT; }
                        ;
 
+ct_cmd_type            :       HELPERS         { $$ = CMD_OBJ_CT_HELPERS; }
+                       |       TIMEOUT         { $$ = CMD_OBJ_CT_TIMEOUT; }
+                       |       EXPECTATION     { $$ = CMD_OBJ_CT_EXPECT; }
+                       ;
+
 ct_l4protoname         :       TCP     { $$ = IPPROTO_TCP; }
                        |       UDP     { $$ = IPPROTO_UDP; }
                        ;