summaryrefslogtreecommitdiffstats
path: root/src/parser_bison.y
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2020-07-16 14:36:28 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2020-07-21 14:20:18 +0200
commitd100e2d811749bf34bb6aeac322052c56661c124 (patch)
tree4644bbd66ca3056917de47c012c87e9fa1a5c2b0 /src/parser_bison.y
parentbde991a2e8fe012c65895a5bac8bd9ccb22ffbc4 (diff)
src: allow to use variables in flowtable and chain devices
This patch adds support for using variables for devices in the chain and flowtable definitions, eg. define if_main = lo table netdev filter1 { chain Main_Ingress1 { type filter hook ingress device $if_main priority -500; policy accept; } } Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/parser_bison.y')
-rw-r--r--src/parser_bison.y16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 572e584c..d2d7694a 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -1945,6 +1945,11 @@ flowtable_expr : '{' flowtable_list_expr '}'
$2->location = @$;
$$ = $2;
}
+ | variable_expr
+ {
+ $1->location = @$;
+ $$ = $1;
+ }
;
flowtable_list_expr : flowtable_expr_member
@@ -1967,6 +1972,11 @@ flowtable_expr_member : STRING
strlen($1) * BITS_PER_BYTE, $1);
xfree($1);
}
+ | variable_expr
+ {
+ datatype_set($1->sym->expr, &ifname_type);
+ $$ = $1;
+ }
;
data_type_atom_expr : type_identifier
@@ -2206,6 +2216,12 @@ dev_spec : DEVICE string
compound_expr_add($$, expr);
}
+ | DEVICE variable_expr
+ {
+ datatype_set($2->sym->expr, &ifname_type);
+ $$ = compound_expr_alloc(&@$, EXPR_LIST);
+ compound_expr_add($$, $2);
+ }
| DEVICES '=' flowtable_expr
{
$$ = $3;