diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-14 18:48:42 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-14 18:48:42 +0100 |
commit | a21fb8ed5b1642031c2b612cac45d176e9fc00f8 (patch) | |
tree | 357b4cd6043da7bb12a0641c5f327118af1ac847 /src/libmime | |
parent | 02b6117a397bb5cba27ca63a7e2df1c5dbfd0125 (diff) | |
download | rspamd-a21fb8ed5b1642031c2b612cac45d176e9fc00f8.tar.gz rspamd-a21fb8ed5b1642031c2b612cac45d176e9fc00f8.zip |
Start removing of old fuzzy algorithm.
Diffstat (limited to 'src/libmime')
-rw-r--r-- | src/libmime/message.c | 2 | ||||
-rw-r--r-- | src/libmime/mime_expressions.c | 22 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c index 2fcb4f7cd..b1d80f7e9 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -1360,7 +1360,6 @@ process_text_part (struct rspamd_task *task, } rspamd_url_text_extract (task->task_pool, task, text_part, TRUE); - rspamd_fuzzy_from_text_part (text_part, task->task_pool, task->cfg->max_diff); rspamd_mempool_add_destructor (task->task_pool, (rspamd_mempool_destruct_t) free_byte_array_callback, text_part->content); @@ -1388,7 +1387,6 @@ process_text_part (struct rspamd_task *task, text_part); text_part->orig = part_content; rspamd_url_text_extract (task->task_pool, task, text_part, FALSE); - rspamd_fuzzy_from_text_part (text_part, task->task_pool, task->cfg->max_diff); g_ptr_array_add (task->text_parts, text_part); } else { diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index 112c7a37f..e64aa03e0 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -1179,6 +1179,7 @@ rspamd_parts_distance (struct rspamd_task * task, GArray * args, void *unused) struct expression_argument *arg; GMimeObject *parent; const GMimeContentType *ct; + guint tw, dw; gint *pdiff; if (args == NULL || args->len == 0) { @@ -1276,18 +1277,21 @@ rspamd_parts_distance (struct rspamd_task * task, GArray * args, void *unused) NULL); return FALSE; } - if (!IS_PART_EMPTY (p1) && !IS_PART_EMPTY (p2)) { - if (p1->diff_str != NULL && p2->diff_str != NULL) { - diff = rspamd_diff_distance_normalized (p1->diff_str, - p2->diff_str); - } - else { - diff = rspamd_fuzzy_compare_parts (p1, p2); - } - debug_task ( + if (!IS_PART_EMPTY (p1) && !IS_PART_EMPTY (p2) && + p1->normalized_words && p2->normalized_words) { + + tw = 0; + dw = 0; + diff = 100; + /* XXX: Need levenshtein distance for a set of words */ + + msg_debug ( + "different words: %d, total words: %d, " "got likeliness between parts of %d%%, threshold is %d%%", + dw, tw, diff, threshold); + *pdiff = diff; rspamd_mempool_set_variable (task->task_pool, "parts_distance", |