From: Vsevolod Stakhov Date: Mon, 18 Jun 2018 09:58:06 +0000 (+0100) Subject: [Minor] Load language detector from the config X-Git-Tag: 1.7.7~93 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=83bcd87dd41bb19917e2cd23e14bf5fef16fbe22;p=thirdparty%2Frspamd.git [Minor] Load language detector from the config --- diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 20d51b31c8..174b4af5eb 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -3449,9 +3449,11 @@ rspamd_config_parse_ucl (struct rspamd_config *cfg, const gchar *filename, } if (!ucl_parser_add_chunk (parser, data, st.st_size)) { - msg_err_config_forced ("ucl parser error: %s", ucl_parser_get_error (parser)); + g_set_error (err, cfg_rcl_error_quark (), errno, + "ucl parser error: %s", ucl_parser_get_error (parser)); ucl_parser_free (parser); munmap (data, st.st_size); + return FALSE; } @@ -3517,7 +3519,11 @@ rspamd_config_read (struct rspamd_config *cfg, const gchar *filename, if (!rspamd_rcl_parse (top, cfg, cfg, cfg->cfg_pool, cfg->rcl_obj, &err)) { msg_err_config ("rcl parse error: %e", err); - g_error_free (err); + + if (err) { + g_error_free (err); + } + return FALSE; } diff --git a/src/libserver/task.c b/src/libserver/task.c index 9801212f17..8994214a5a 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -69,6 +69,7 @@ rspamd_task_new (struct rspamd_worker *worker, struct rspamd_config *cfg, new_task = g_malloc0 (sizeof (struct rspamd_task)); new_task->worker = worker; + new_task->lang_det = lang_det; if (cfg) { new_task->cfg = cfg; @@ -79,6 +80,10 @@ rspamd_task_new (struct rspamd_worker *worker, struct rspamd_config *cfg, } new_task->re_rt = rspamd_re_cache_runtime_new (cfg->re_cache); + + if (new_task->lang_det == NULL && cfg->lang_det != NULL) { + new_task->lang_det = cfg->lang_det; + } } gettimeofday (&new_task->tv, NULL); @@ -86,7 +91,6 @@ rspamd_task_new (struct rspamd_worker *worker, struct rspamd_config *cfg, new_task->time_virtual = rspamd_get_virtual_ticks (); new_task->time_real_finish = NAN; new_task->time_virtual_finish = NAN; - new_task->lang_det = lang_det; if (pool == NULL) { new_task->task_pool =