mirror of
https://git.netfilter.org/nftables
synced 2026-01-26 10:34:27 +00:00
parser_bison: Introduce tokens for log levels
Since log statement is scoped already, it's just a matter of declaring the tokens in that scope and using them. This eliminates the redundant copy of log level string parsing in parser_bison.y - the remaining one, namely log_level_parse() in statement.c is used by JSON parser. Signed-off-by: Phil Sutter <phil@nwl.cc> Reviewed-by: Florian Westphal <fw@strlen.de>
This commit is contained in:
parent
6c984ef1ef
commit
7d6d805b61
@ -643,6 +643,15 @@ int nft_lex(void *, void *, void *);
|
||||
%token SNAPLEN "snaplen"
|
||||
%token QUEUE_THRESHOLD "queue-threshold"
|
||||
%token LEVEL "level"
|
||||
%token EMERG "emerg"
|
||||
%token ALERT "alert"
|
||||
%token CRIT "crit"
|
||||
%token ERR "err"
|
||||
%token WARN "warn"
|
||||
%token NOTICE "notice"
|
||||
%token INFO "info"
|
||||
%token DEBUG_TOKEN "debug"
|
||||
%token AUDIT "audit"
|
||||
|
||||
%token LIMIT "limit"
|
||||
%token RATE "rate"
|
||||
@ -3490,34 +3499,15 @@ log_arg : PREFIX string
|
||||
}
|
||||
;
|
||||
|
||||
level_type : string
|
||||
{
|
||||
if (!strcmp("emerg", $1))
|
||||
$$ = NFT_LOGLEVEL_EMERG;
|
||||
else if (!strcmp("alert", $1))
|
||||
$$ = NFT_LOGLEVEL_ALERT;
|
||||
else if (!strcmp("crit", $1))
|
||||
$$ = NFT_LOGLEVEL_CRIT;
|
||||
else if (!strcmp("err", $1))
|
||||
$$ = NFT_LOGLEVEL_ERR;
|
||||
else if (!strcmp("warn", $1))
|
||||
$$ = NFT_LOGLEVEL_WARNING;
|
||||
else if (!strcmp("notice", $1))
|
||||
$$ = NFT_LOGLEVEL_NOTICE;
|
||||
else if (!strcmp("info", $1))
|
||||
$$ = NFT_LOGLEVEL_INFO;
|
||||
else if (!strcmp("debug", $1))
|
||||
$$ = NFT_LOGLEVEL_DEBUG;
|
||||
else if (!strcmp("audit", $1))
|
||||
$$ = NFT_LOGLEVEL_AUDIT;
|
||||
else {
|
||||
erec_queue(error(&@1, "invalid log level"),
|
||||
state->msgs);
|
||||
free_const($1);
|
||||
YYERROR;
|
||||
}
|
||||
free_const($1);
|
||||
}
|
||||
level_type : EMERG { $$ = NFT_LOGLEVEL_EMERG; }
|
||||
| ALERT { $$ = NFT_LOGLEVEL_ALERT; }
|
||||
| CRIT { $$ = NFT_LOGLEVEL_CRIT; }
|
||||
| ERR { $$ = NFT_LOGLEVEL_ERR; }
|
||||
| WARN { $$ = NFT_LOGLEVEL_WARNING; }
|
||||
| NOTICE { $$ = NFT_LOGLEVEL_NOTICE; }
|
||||
| INFO { $$ = NFT_LOGLEVEL_INFO; }
|
||||
| DEBUG_TOKEN { $$ = NFT_LOGLEVEL_DEBUG; }
|
||||
| AUDIT { $$ = NFT_LOGLEVEL_AUDIT; }
|
||||
;
|
||||
|
||||
log_flags : TCP log_flags_tcp close_scope_tcp
|
||||
|
||||
@ -433,6 +433,15 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr})
|
||||
"queue-threshold" { return QUEUE_THRESHOLD; }
|
||||
"level" { return LEVEL; }
|
||||
"group" { return GROUP; }
|
||||
"emerg" { return EMERG; }
|
||||
"alert" { return ALERT; }
|
||||
"crit" { return CRIT; }
|
||||
"err" { return ERR; }
|
||||
"warn" { return WARN; }
|
||||
"notice" { return NOTICE; }
|
||||
"info" { return INFO; }
|
||||
"debug" { return DEBUG_TOKEN; }
|
||||
"audit" { return AUDIT; }
|
||||
}
|
||||
|
||||
"queue" { scanner_push_start_cond(yyscanner, SCANSTATE_EXPR_QUEUE); return QUEUE;}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user