]> source.dussan.org Git - rspamd.git/commitdiff
Fix some issues with new symbols structure.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 13 Aug 2015 13:50:37 +0000 (14:50 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 13 Aug 2015 13:50:37 +0000 (14:50 +0100)
src/libserver/cfg_rcl.c
src/libserver/cfg_utils.c

index e209996ffa90631879b505feb491c2f53962656a..1eaaa270b110b591f50ead9e5ce0f14ae19bb157 100644 (file)
@@ -360,6 +360,8 @@ rspamd_rcl_symbol_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
                return FALSE;
        }
 
+       *sym_def->weight_ptr = sym_def->score;
+
        return TRUE;
 }
 
index 69b25a872592080d01408c0c1cd2c0ea944f06d5..fcf5b4fd99d7b58d07127ac3fb236885dd1a9c79 100644 (file)
@@ -189,7 +189,6 @@ rspamd_config_free (struct rspamd_config *cfg)
        g_hash_table_unref (cfg->cfg_params);
        g_hash_table_destroy (cfg->metrics_symbols);
        g_hash_table_destroy (cfg->classifiers_symbols);
-       g_hash_table_unref (cfg->symbols_groups);
 
        if (cfg->checksum) {
                g_free (cfg->checksum);
@@ -1005,7 +1004,7 @@ rspamd_config_add_metric_symbol (struct rspamd_config *cfg,
                group = "ungrouped";
        }
 
-       sym_group = g_hash_table_lookup (cfg->symbols_groups, group);
+       sym_group = g_hash_table_lookup (metric->groups, group);
        if (sym_group == NULL) {
                /* Create new group */
                sym_group =
@@ -1013,12 +1012,11 @@ rspamd_config_add_metric_symbol (struct rspamd_config *cfg,
                                sizeof (struct rspamd_symbols_group));
                sym_group->name = rspamd_mempool_strdup (cfg->cfg_pool, group);
                sym_group->symbols = NULL;
-               g_hash_table_insert (cfg->symbols_groups, sym_group->name, sym_group);
+               g_hash_table_insert (metric->groups, sym_group->name, sym_group);
        }
 
        sym_def->gr = sym_group;
-
-       LL_PREPEND (sym_group->symbols, sym_def);
+       g_hash_table_insert (sym_group->symbols, sym_def->name, sym_def);
 
        return TRUE;
 }
@@ -1085,7 +1083,7 @@ rspamd_config_is_module_enabled (struct rspamd_config *cfg,
        }
 
        /* Now we check symbols group */
-       gr = g_hash_table_lookup (cfg->symbols_groups, module_name);
+       gr = g_hash_table_lookup (metric->groups, module_name);
 
        if (gr) {
                if (gr->disabled) {