]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser: restore named vmap
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 23 Nov 2014 19:13:03 +0000 (20:13 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sun, 23 Nov 2014 20:08:22 +0000 (21:08 +0100)
For example:

nft add map filter my_vmap { type ipv4_addr : verdict\; }
nft add element filter my_vmap { 1.0.0.0 : drop}
nft add rule filter input ip saddr vmap @my_vmap

Reported-by: Bjørnar Ness <bjornar.ness@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser_bison.y

index 6eb0475e99de1f895ab2d76e3c24ebccd4c09131..ad2951a191be1d0ba61caf869235034496a9554d 100644 (file)
@@ -1211,6 +1211,13 @@ verdict_map_expr :       '{'     verdict_map_list_expr   '}'
                                $2->location = @$;
                                $$ = $2;
                        }
+                       |       AT      identifier
+                       {
+                               $$ = symbol_expr_alloc(&@$, SYMBOL_SET,
+                                                      current_scope(state),
+                                                      $2);
+                               xfree($2);
+                       }
                        ;
 
 verdict_map_list_expr  :       verdict_map_list_member_expr
@@ -1691,6 +1698,10 @@ set_list_member_expr     :       opt_newline     expr    opt_newline
                        {
                                $$ = mapping_expr_alloc(&@$, $2, $4);
                        }
+                       |       opt_newline     map_lhs_expr    COLON   verdict_expr    opt_newline
+                       {
+                               $$ = mapping_expr_alloc(&@$, $2, $4);
+                       }
                        ;
 
 initializer_expr       :       expr