summaryrefslogtreecommitdiffstats
path: root/src/parser_bison.y
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2015-03-17 16:36:15 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2015-03-17 17:26:03 +0100
commitacdfae9c3126ff8716c93713f13e8e31a85d5e95 (patch)
tree3b6c0d51c0062c54243d62565330ea99bba6ab23 /src/parser_bison.y
parentac3a68fb768b7f0e20493038139faa4704dc1846 (diff)
src: allow to specify the default policy for base chains
The new syntax is: nft add chain filter input { hook input type filter priority 0\; policy accept\; } but the previous syntax is still allowed: nft add chain filter input { hook input type filter priority 0\; } this assumes default policy to accept. If the base chain already exists, you can update the policy via: nft add chain filter input { policy drop\; } Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/parser_bison.y')
-rw-r--r--src/parser_bison.y21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 6fc834d0..ea3ff526 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -913,6 +913,7 @@ chain_block : /* empty */ { $$ = $<chain>-1; }
| chain_block common_block
| chain_block stmt_seperator
| chain_block hook_spec stmt_seperator
+ | chain_block policy_spec stmt_seperator
| chain_block rule stmt_seperator
{
list_add_tail(&$2->list, &$1->rules);
@@ -1070,6 +1071,26 @@ hook_spec : TYPE STRING HOOK STRING PRIORITY NUM
}
;
+policy_spec : POLICY ACCEPT
+ {
+ if ($<chain>0->policy != -1) {
+ erec_queue(error(&@$, "you cannot set chain policy twice"),
+ state->msgs);
+ YYERROR;
+ }
+ $<chain>0->policy = NF_ACCEPT;
+ }
+ | POLICY DROP
+ {
+ if ($<chain>0->policy != -1) {
+ erec_queue(error(&@$, "you cannot set chain policy twice"),
+ state->msgs);
+ YYERROR;
+ }
+ $<chain>0->policy = NF_DROP;
+ }
+ ;
+
identifier : STRING
;