From: Vsevolod Stakhov Date: Sun, 28 Oct 2018 10:21:21 +0000 (+0000) Subject: [Minor] Another hack for classifiers X-Git-Tag: 1.8.2~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=186683c8e84b52a8c6657cdb21585af8f1f92323;p=thirdparty%2Frspamd.git [Minor] Another hack for classifiers --- diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index bbaffa400d..237fa38b82 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -916,10 +916,12 @@ rspamd_symbols_cache_add_symbol (struct symbols_cache *cache, g_ptr_array_add (cache->composites, item); } else if (item->type & SYMBOL_TYPE_CLASSIFIER) { - /* Treat it as virtual */ - item->id = cache->virtual->len; + /* Treat it as normal symbol to allow enable/disable */ + item->id = cache->filters->len; + g_ptr_array_add (cache->filters, item); + item->specific.normal.func = NULL; + item->specific.normal.user_data = NULL; item->specific.normal.condition_cb = -1; - g_ptr_array_add (cache->virtual, item); } else { /* Require parent */ @@ -1334,8 +1336,12 @@ rspamd_symbols_cache_check_symbol (struct rspamd_task *task, lua_State *L; gboolean check = TRUE; - g_assert (!item->is_virtual); + if (item->type & SYMBOL_TYPE_CLASSIFIER) { + /* Classifiers are special :( */ + return TRUE; + } + g_assert (!item->is_virtual); g_assert (item->specific.normal.func != NULL); if (CHECK_START_BIT (checkpoint, item)) { /*