]> source.dussan.org Git - rspamd.git/commitdiff
Fix parts distance compare condition.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 16 Jul 2015 15:48:49 +0000 (16:48 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 16 Jul 2015 15:48:49 +0000 (16:48 +0100)
src/libmime/message.c

index fe435253a71123aa6a109f4fb83dc085786971b8..6c1bad06c52b5499a643b37bb3a6d0c15bdedbe9 100644 (file)
@@ -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 (