Include LogLevel and it's settings into the grammar of the config file.

This commit is contained in:
Robert James Kaes 2001-06-02 03:10:09 +00:00
parent 2925b18412
commit a9720e85f6
2 changed files with 25 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $Id: grammar.y,v 1.2 2001-05-27 02:25:21 rjkaes Exp $
/* $Id: grammar.y,v 1.3 2001-06-02 03:10:09 rjkaes Exp $
*
* This is the grammar for tinyproxy's configuration file. It needs to be
* in sync with scanner.l. If you know more about yacc and lex than I do
@ -50,6 +50,10 @@ int yylex(void);
/* yes/no switches */
%token KW_YES KW_NO
/* settings for loglevel */
%token KW_LOGLEVEL
%token KW_LOG_CRITICAL KW_LOG_ERROR KW_LOG_WARNING KW_LOG_NOTICE KW_LOG_INFO
%token <cptr> IDENTIFIER
%token <num> NUMBER
%token <cptr> STRING
@ -61,6 +65,7 @@ int yylex(void);
%type <cptr> string
%type <cptr> network_address
%type <cptr> unique_address
%type <num> loglevels
%%
@ -122,8 +127,17 @@ statement
| KW_LISTEN NUMERIC_ADDRESS { config.ipAddr = $2; }
| KW_ALLOW network_address { insert_acl($2, ACL_ALLOW); }
| KW_DENY network_address { insert_acl($2, ACL_DENY); }
| KW_LOGLEVEL loglevels { set_log_level($2); }
;
loglevels
: KW_LOG_CRITICAL { $$ = LOG_CRIT; }
| KW_LOG_ERROR { $$ = LOG_ERR; }
| KW_LOG_WARNING { $$ = LOG_WARNING; }
| KW_LOG_NOTICE { $$ = LOG_NOTICE; }
| KW_LOG_INFO { $$ = LOG_INFO; }
;
network_address
: unique_address
| NETMASK_ADDRESS

View File

@ -1,4 +1,4 @@
/* $Id: scanner.l,v 1.2 2001-01-02 19:30:40 rjkaes Exp $
/* $Id: scanner.l,v 1.3 2001-06-02 03:10:09 rjkaes Exp $
*
* This builds the scanner for the tinyproxy configuration file. This
* file needs to stay in sync with grammar.y. If someone knows lex and yacc
@ -50,6 +50,14 @@ static struct keyword keywords[] = {
{ "allow", KW_ALLOW },
{ "deny", KW_DENY },
/* loglevel and the settings */
{ "loglevel", KW_LOGLEVEL },
{ "critical", KW_LOG_CRITICAL },
{ "error", KW_LOG_ERROR },
{ "warning", KW_LOG_WARNING },
{ "notice", KW_LOG_NOTICE },
{ "info", KW_LOG_INFO },
/* on/off switches */
{ "yes", KW_YES },
{ "on", KW_YES },
@ -143,4 +151,4 @@ static void append_char(char c)
*tiny_str = c;
tiny_str++;
*tiny_str = 0;
}
}