]> source.dussan.org Git - rspamd.git/commitdiff
Fix RCL config parsing.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 3 Nov 2013 22:30:57 +0000 (22:30 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 3 Nov 2013 22:30:57 +0000 (22:30 +0000)
src/cfg_utils.c

index 0e698cdcde7c7db5019f76736032f1119b1ce61d..35f0f44b78f802729a2477fa27630b506f3d9c1f 100644 (file)
@@ -306,7 +306,7 @@ get_module_opt (struct config_file *cfg, const gchar *module_name, const gchar *
 
        sec = ucl_obj_get_key (cfg->rcl_obj, module_name);
        if (sec != NULL) {
-               res = ucl_obj_get_key (cfg->rcl_obj, opt_name);
+               res = ucl_obj_get_key (sec, opt_name);
        }
 
        return res;
@@ -1012,10 +1012,6 @@ read_rspamd_config (struct config_file *cfg, const gchar *filename, const gchar
                res = g_markup_parse_context_parse (ctx, data, st.st_size, &err);
 
                munmap (data, st.st_size);
-
-               top = rspamd_rcl_config_init ();
-
-               err = NULL;
        }
        else {
                parser = ucl_parser_new (UCL_PARSER_KEY_LOWERCASE);
@@ -1026,8 +1022,11 @@ read_rspamd_config (struct config_file *cfg, const gchar *filename, const gchar
                }
                munmap (data, st.st_size);
                cfg->rcl_obj = ucl_parser_get_object (parser);
+               res = TRUE;
        }
 
+       top = rspamd_rcl_config_init ();
+       err = NULL;
 
        if (!res || !rspamd_read_rcl_config (top, cfg, cfg->rcl_obj, &err)) {
                msg_err ("rcl parse error: %s", err->message);