diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-15 21:55:34 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-15 21:55:34 +0000 |
commit | 655b2644d90dfec7294f597df469e2ae3c29948a (patch) | |
tree | cda7bc96ddb2c39a2bdcf95e945673b4ed8e7214 /src/plugins | |
parent | 88faa68e4e191355f01a4f8546f1d524e0dd79f1 (diff) | |
download | rspamd-655b2644d90dfec7294f597df469e2ae3c29948a.tar.gz rspamd-655b2644d90dfec7294f597df469e2ae3c29948a.zip |
Fix errors processing in fuzzy check
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/fuzzy_check.c | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index 8181bf379..cdc4ef508 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -1112,33 +1112,37 @@ fuzzy_check_io_callback (gint fd, short what, void *arg) symbol = map->symbol; } - if (rep->value == 0) { - if (rep->prob > 0.5) { - nval = fuzzy_normalize (rep->value, - session->rule->max_score); - nval *= rep->prob; - msg_info_task ( - "found fuzzy hash with weight: " - "%.2f, in list: %s:%d%s", - nval, - symbol, + + /* + * Hash is assumed to be found if probability is more than 0.5 + * In that case `value` means number of matches + * Otherwise `value` means error code + */ + if (rep->prob > 0.5) { + nval = fuzzy_normalize (rep->value, + session->rule->max_score); + nval *= rep->prob; + msg_info_task ( + "found fuzzy hash with weight: " + "%.2f, in list: %s:%d%s", + nval, + symbol, + rep->flag, + map == NULL ? "(unknown)" : ""); + if (map != NULL || !session->rule->skip_unknown) { + rspamd_snprintf (buf, + sizeof (buf), + "%d: %.2f / %.2f", rep->flag, - map == NULL ? "(unknown)" : ""); - if (map != NULL || !session->rule->skip_unknown) { - rspamd_snprintf (buf, - sizeof (buf), - "%d: %.2f / %.2f", - rep->flag, - rep->prob, - nval); - rspamd_task_insert_result_single (session->task, - symbol, - nval, - g_list_prepend (NULL, - rspamd_mempool_strdup ( - session->task->task_pool, - buf))); - } + rep->prob, + nval); + rspamd_task_insert_result_single (session->task, + symbol, + nval, + g_list_prepend (NULL, + rspamd_mempool_strdup ( + session->task->task_pool, + buf))); } } else if (rep->value == 403) { |