diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-08-30 12:46:42 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-08-30 12:47:06 +0100 |
commit | 32f0cbfd755d38378f8ebae96398cbd085189eeb (patch) | |
tree | ce45098638caebeda3b7a1d985c0f7b14621ba5a | |
parent | 802be9bb2c917b5c492ccd95be819d1439561c3a (diff) | |
download | rspamd-32f0cbfd755d38378f8ebae96398cbd085189eeb.tar.gz rspamd-32f0cbfd755d38378f8ebae96398cbd085189eeb.zip |
[Fix] Fix processing of symbols when reject limit is reached
-rw-r--r-- | src/libserver/symbols_cache.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index c69a59383..ffd859799 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -1550,16 +1550,18 @@ rspamd_symbols_cache_process_symbols (struct rspamd_task * task, * we just save it for another pass */ for (i = 0; i < (gint)checkpoint->version; i ++) { - if (rspamd_symbols_cache_metric_limit (task, checkpoint)) { - msg_info_task ("<%s> has already scored more than %.2f, so do " - "not " - "plan any more checks", task->message_id, - checkpoint->rs->score); - return TRUE; - } - item = g_ptr_array_index (checkpoint->order->d, i); + if (!(item->type & SYMBOL_TYPE_FINE)) { + if (rspamd_symbols_cache_metric_limit (task, checkpoint)) { + msg_info_task ("<%s> has already scored more than %.2f, so do " + "not " + "plan more checks", task->message_id, + checkpoint->rs->score); + continue; + } + } + if (!isset (checkpoint->processed_bits, item->id * 2)) { if (!rspamd_symbols_cache_check_deps (task, cache, item, checkpoint, 0)) { |