summaryrefslogtreecommitdiffstats
path: root/src/cfg_utils.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2013-12-04 16:11:54 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2013-12-04 16:11:54 +0000
commitea3c69a103647377d662edb3b59486466352945c (patch)
tree8fadbfdaa38809515320d6d5e8cb4277a342133b /src/cfg_utils.c
parent4ce9f550f52f0656ce4ae5a8cda2caaf6b553aa7 (diff)
downloadrspamd-ea3c69a103647377d662edb3b59486466352945c.tar.gz
rspamd-ea3c69a103647377d662edb3b59486466352945c.zip
Init logging just after config is parsed by ucl.
Diffstat (limited to 'src/cfg_utils.c')
-rw-r--r--src/cfg_utils.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/cfg_utils.c b/src/cfg_utils.c
index d015d60a0..5bea92303 100644
--- a/src/cfg_utils.c
+++ b/src/cfg_utils.c
@@ -778,7 +778,9 @@ rspamd_ucl_add_conf_variables (struct ucl_parser *parser)
}
gboolean
-read_rspamd_config (struct config_file *cfg, const gchar *filename, const gchar *convert_to)
+read_rspamd_config (struct config_file *cfg, const gchar *filename,
+ const gchar *convert_to, rspamd_rcl_section_fin_t logger_fin,
+ gpointer logger_ud)
{
struct stat st;
gint fd;
@@ -786,7 +788,7 @@ read_rspamd_config (struct config_file *cfg, const gchar *filename, const gchar
const gchar *ext;
GMarkupParseContext *ctx;
GError *err = NULL;
- struct rspamd_rcl_section *top;
+ struct rspamd_rcl_section *top, *logger;
gboolean res, is_xml = FALSE;
struct rspamd_xml_userdata ud;
struct ucl_parser *parser;
@@ -868,6 +870,12 @@ read_rspamd_config (struct config_file *cfg, const gchar *filename, const gchar
top = rspamd_rcl_config_init ();
err = NULL;
+ HASH_FIND_STR(top, "log", logger);
+ if (logger != NULL) {
+ logger->fin = logger_fin;
+ logger->fin_ud = logger_ud;
+ }
+
if (!rspamd_read_rcl_config (top, cfg, cfg->rcl_obj, &err)) {
msg_err ("rcl parse error: %s", err->message);
return FALSE;