]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
src: don't need keyword for log level
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 21 Oct 2016 11:06:12 +0000 (12:06 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 21 Oct 2016 11:06:12 +0000 (13:06 +0200)
We can handle log levels without keywords in our grammar, use string
instead.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser_bison.y
src/scanner.l

index baf0a539efa072dcc88e793d79b2af2de751e9f8..f582221a089e76ce6960755eb8a010a35effe750 100644 (file)
@@ -1517,14 +1517,30 @@ log_arg                 :       PREFIX                  string
                        }
                        ;
 
-level_type             :       LEVEL_EMERG     { $$ = LOG_EMERG; }
-                       |       LEVEL_ALERT     { $$ = LOG_ALERT; }
-                       |       LEVEL_CRIT      { $$ = LOG_CRIT; }
-                       |       LEVEL_ERR       { $$ = LOG_ERR; }
-                       |       LEVEL_WARN      { $$ = LOG_WARNING; }
-                       |       LEVEL_NOTICE    { $$ = LOG_NOTICE; }
-                       |       LEVEL_INFO      { $$ = LOG_INFO; }
-                       |       LEVEL_DEBUG     { $$ = LOG_DEBUG; }
+level_type             :       string
+                       {
+                               if (!strcmp("emerg", $1))
+                                       $$ = LOG_EMERG;
+                               else if (!strcmp("alert", $1))
+                                       $$ = LOG_ALERT;
+                               else if (!strcmp("crit", $1))
+                                       $$ = LOG_CRIT;
+                               else if (!strcmp("err", $1))
+                                       $$ = LOG_ERR;
+                               else if (!strcmp("warning", $1))
+                                       $$ = LOG_WARNING;
+                               else if (!strcmp("notice", $1))
+                                       $$ = LOG_NOTICE;
+                               else if (!strcmp("info", $1))
+                                       $$ = LOG_INFO;
+                               else if (!strcmp("debug", $1))
+                                       $$ = LOG_DEBUG;
+                               else {
+                                       erec_queue(error(&@1, "invalid log level", $1),
+                                                  state->msgs);
+                                       YYERROR;
+                               }
+                       }
                        ;
 
 limit_stmt             :       LIMIT   RATE    limit_mode      NUM     SLASH   time_unit       limit_burst
index 8b5a383bd095b3398ce18455427063c77952c6f8..467954374f11dc866cac3682820fd05ff7889d63 100644 (file)
@@ -299,14 +299,6 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr})
 "snaplen"              { return SNAPLEN; }
 "queue-threshold"      { return QUEUE_THRESHOLD; }
 "level"                        { return LEVEL; }
-"emerg"                        { return LEVEL_EMERG; }
-"alert"                        { return LEVEL_ALERT; }
-"crit"                 { return LEVEL_CRIT; }
-"err"                  { return LEVEL_ERR; }
-"warn"                 { return LEVEL_WARN; }
-"notice"               { return LEVEL_NOTICE; }
-"info"                 { return LEVEL_INFO; }
-"debug"                        { return LEVEL_DEBUG; }
 
 "queue"                        { return QUEUE;}
 "num"                  { return QUEUENUM;}