From: Vsevolod Stakhov Date: Fri, 6 Feb 2009 10:39:58 +0000 (+0300) Subject: * Move config parse errors from stderr output to standart logging functions X-Git-Tag: 0.2.7~315 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a3c3fb96d13f2cbfc5ab984c1886441ec0e9b47b;p=rspamd.git * Move config parse errors from stderr output to standart logging functions --- diff --git a/src/cfg_file.h b/src/cfg_file.h index 7294bb28e..b80f4081c 100644 --- a/src/cfg_file.h +++ b/src/cfg_file.h @@ -39,16 +39,8 @@ /* 1 worker by default */ #define DEFAULT_WORKERS_NUM 1 -#define yyerror(fmt, ...) \ - fprintf (stderr, "Config file parse error!\non line: %d\n", yylineno); \ - fprintf (stderr, "while reading text: %s\nreason: ", yytext); \ - fprintf (stderr, fmt, ##__VA_ARGS__); \ - fprintf (stderr, "\n") -#define yywarn(fmt, ...) \ - fprintf (stderr, "Config file parse warning!\non line %d\n", yylineno); \ - fprintf (stderr, "while reading text: %s\nreason: ", yytext); \ - fprintf (stderr, fmt, ##__VA_ARGS__); \ - fprintf (stderr, "\n") +#define yyerror parse_err +#define yywarn parse_warn struct expression; struct tokenizer; @@ -292,6 +284,8 @@ struct expression* parse_expression (memory_pool_t *pool, char *line); int yylex (void); int yyparse (void); void yyrestart (FILE *); +void parse_err (const char *fmt, ...); +void parse_warn (const char *fmt, ...); #endif /* ifdef CFG_FILE_H */ /* diff --git a/src/cfg_utils.c b/src/cfg_utils.c index 68c1a1174..7e1e74b28 100644 --- a/src/cfg_utils.c +++ b/src/cfg_utils.c @@ -632,6 +632,41 @@ parse_regexp (memory_pool_t *pool, char *line) return result; } +void +parse_err (const char *fmt, ...) +{ + va_list aq; + char logbuf[BUFSIZ], readbuf[32]; + int r; + + va_start (aq, fmt); + g_strlcpy (readbuf, yytext, sizeof (readbuf)); + + r = snprintf (logbuf, sizeof (logbuf), "config file parse error! line: %d, text: %s, reason: ", yylineno, readbuf); + r += vsnprintf (logbuf + r, sizeof (logbuf) - r, fmt, aq); + + va_end (aq); + g_error ("%s", logbuf); +} + +void +parse_warn (const char *fmt, ...) +{ + va_list aq; + char logbuf[BUFSIZ], readbuf[32]; + int r; + + va_start (aq, fmt); + g_strlcpy (readbuf, yytext, sizeof (readbuf)); + + r = snprintf (logbuf, sizeof (logbuf), "config file parse warning! line: %d, text: %s, reason: ", yylineno, readbuf); + r += vsnprintf (logbuf + r, sizeof (logbuf) - r, fmt, aq); + + va_end (aq); + g_warning ("%s", logbuf); +} + + /* * vi:ts=4 */