aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-15 21:55:34 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-15 21:55:34 +0000
commit655b2644d90dfec7294f597df469e2ae3c29948a (patch)
treecda7bc96ddb2c39a2bdcf95e945673b4ed8e7214 /src/plugins
parent88faa68e4e191355f01a4f8546f1d524e0dd79f1 (diff)
downloadrspamd-655b2644d90dfec7294f597df469e2ae3c29948a.tar.gz
rspamd-655b2644d90dfec7294f597df469e2ae3c29948a.zip
Fix errors processing in fuzzy check
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/fuzzy_check.c56
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) {