summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2014-11-23 20:13:03 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2014-11-23 21:08:22 +0100
commitb3e93bd1fe09282f22616e2b2c8ad335ef92653f (patch)
treea72eaa39fee256cb7c1a9b377586cd561a195cb7
parentc36106b079b69eefbfe57ab32640a2e46a1f1a21 (diff)
parser: restore named vmap
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>
-rw-r--r--src/parser_bison.y11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 6eb0475e..ad2951a1 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -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