]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Load language detector from the config
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 09:58:06 +0000 (10:58 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 09:58:26 +0000 (10:58 +0100)
src/libserver/cfg_rcl.c
src/libserver/task.c

index 20d51b31c8437cdcc5336357dd42e90c1fed915f..174b4af5ebb876ca6cbe88d03ed359cdae3af655 100644 (file)
@@ -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;
        }
 
index 9801212f1772efaab1ce00d9feffa0239b791fe7..8994214a5ad7f8a4277af0cd29db47c74fa980a7 100644 (file)
@@ -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 =