aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-02-06 13:39:58 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-02-06 13:39:58 +0300
commita3c3fb96d13f2cbfc5ab984c1886441ec0e9b47b (patch)
tree12233b2d521607537f451d22b6e818428ee272e8 /src
parentbf6f2838403722ea571daaeec5981831313d474b (diff)
downloadrspamd-a3c3fb96d13f2cbfc5ab984c1886441ec0e9b47b.tar.gz
rspamd-a3c3fb96d13f2cbfc5ab984c1886441ec0e9b47b.zip
* Move config parse errors from stderr output to standart logging functions
Diffstat (limited to 'src')
-rw-r--r--src/cfg_file.h14
-rw-r--r--src/cfg_utils.c35
2 files changed, 39 insertions, 10 deletions
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
*/