aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-14 18:48:42 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-14 18:48:42 +0100
commita21fb8ed5b1642031c2b612cac45d176e9fc00f8 (patch)
tree357b4cd6043da7bb12a0641c5f327118af1ac847 /src/libmime
parent02b6117a397bb5cba27ca63a7e2df1c5dbfd0125 (diff)
downloadrspamd-a21fb8ed5b1642031c2b612cac45d176e9fc00f8.tar.gz
rspamd-a21fb8ed5b1642031c2b612cac45d176e9fc00f8.zip
Start removing of old fuzzy algorithm.
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/message.c2
-rw-r--r--src/libmime/mime_expressions.c22
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",