aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libmime/message.c45
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 (