]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Deal with unknown weight
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 5 Nov 2017 13:13:59 +0000 (13:13 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 5 Nov 2017 13:13:59 +0000 (13:13 +0000)
src/libserver/cfg_file.h
src/libserver/symbols_cache.c

index 412cd4bb06d55fba7a0453ec0f06b0fc58272c83..f724a82c8c00333c7e18645ecbc38d1658f529fe 100644 (file)
@@ -279,8 +279,6 @@ struct rspamd_config {
 #ifdef WITH_GPERF_TOOLS
        gchar *profile_path;
 #endif
-
-       gboolean accept_unknown_symbols;                /**< if true unknown symbols are registered here        */
        gdouble unknown_weight;                         /**< weight of unknown symbols                                          */
        gdouble grow_factor;                            /**< grow factor for metric                                                     */
        GHashTable *symbols;                            /**< weights of symbols in metric                                       */
index 9b8fba25bf5fdd6af1bb2081d29a05fc3057c032..719f8aabd7824a89a2c72b2ba730be54e0d2af18 100644 (file)
@@ -1030,7 +1030,7 @@ rspamd_symbols_cache_validate_cb (gpointer k, gpointer v, gpointer ud)
                        (SYMBOL_TYPE_NORMAL|SYMBOL_TYPE_VIRTUAL|SYMBOL_TYPE_COMPOSITE|SYMBOL_TYPE_CLASSIFIER))
                        && g_hash_table_lookup (cfg->symbols, item->symbol) == NULL) {
 
-               if (cfg->accept_unknown_symbols) {
+               if (cfg->unknown_weight != 0) {
 
                        skipped = FALSE;
                        item->st->weight = cfg->unknown_weight;
@@ -1043,14 +1043,17 @@ rspamd_symbols_cache_validate_cb (gpointer k, gpointer v, gpointer ud)
                        msg_info_cache ("adding unknown symbol %s", item->symbol);
                        ghost = FALSE;
                }
+               else {
+                       skipped = TRUE;
+               }
        }
        else {
                skipped = FALSE;
        }
 
-       if (skipped) {
+       if (!ghost && skipped) {
                item->type |= SYMBOL_TYPE_SKIPPED;
-               msg_warn_cache ("symbol %s is not registered in any metric, so skip its check",
+               msg_warn_cache ("symbol %s has no score registered, skip its check",
                                item->symbol);
        }