diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-16 16:48:49 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-16 16:48:49 +0100 |
commit | 4b1afa8fcb2e5caa27204740b479f8867207ec37 (patch) | |
tree | 8e426ed90adb0f2d44879437ae8f4a943758de48 | |
parent | 074a49e743ced410e859c6cd4317071f3504888a (diff) | |
download | rspamd-4b1afa8fcb2e5caa27204740b479f8867207ec37.tar.gz rspamd-4b1afa8fcb2e5caa27204740b479f8867207ec37.zip |
Fix parts distance compare condition.
-rw-r--r-- | src/libmime/message.c | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c index fe435253a..6c1bad06c 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -1666,33 +1666,34 @@ rspamd_message_parse (struct rspamd_task *task) debug_task ( "two parts are not belong to multipart/alternative container, skip check"); } + else { + if (!IS_PART_EMPTY (p1) && !IS_PART_EMPTY (p2) && + p1->normalized_words && p2->normalized_words) { + + tw = MAX (p1->normalized_words->len, p2->normalized_words->len); + dw = rspamd_words_levenshtein_distance (p1->normalized_words, + p2->normalized_words); + diff = tw > 0 ? (100.0 * (gdouble)(tw - dw) / (gdouble)tw) : 100; + + msg_info ( + "different words: %d, total words: %d, " + "got likeliness between parts of %d%%", + dw, tw, + diff); + + pdiff = rspamd_mempool_alloc (task->task_pool, sizeof (gint)); + *pdiff = diff; + rspamd_mempool_set_variable (task->task_pool, + "parts_distance", + pdiff, + NULL); + } + } } else { debug_task ( "message contains two parts but they are in different multi-parts"); } - - if (!IS_PART_EMPTY (p1) && !IS_PART_EMPTY (p2) && - p1->normalized_words && p2->normalized_words) { - - tw = MAX (p1->normalized_words->len, p2->normalized_words->len); - dw = rspamd_words_levenshtein_distance (p1->normalized_words, - p2->normalized_words); - diff = tw > 0 ? (100.0 * (gdouble)(tw - dw) / (gdouble)tw) : 100; - - msg_info ( - "different words: %d, total words: %d, " - "got likeliness between parts of %d%%", - dw, tw, - diff); - - pdiff = rspamd_mempool_alloc (task->task_pool, sizeof (gint)); - *pdiff = diff; - rspamd_mempool_set_variable (task->task_pool, - "parts_distance", - pdiff, - NULL); - } } else { debug_task ( |