]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[CritFix] Really skip filters in case of pre-result set
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 3 May 2016 15:51:09 +0000 (16:51 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 3 May 2016 16:02:29 +0000 (17:02 +0100)
src/libserver/task.c

index c96104b2afd2f0adb61bff51f29a948f2e1afcd7..b3019c00487f002f4ff6913698f5f66b76a80fa7 100644 (file)
@@ -426,6 +426,14 @@ rspamd_task_process (struct rspamd_task *task, guint stages)
                return TRUE;
        }
 
+       if (task->pre_result.action != METRIC_ACTION_MAX) {
+               /* Skip all if we have result here */
+               task->processed_stages |= RSPAMD_TASK_STAGE_DONE;
+               msg_info_task ("skip filters, as pre-filter returned %s action",
+                               rspamd_action_to_str (task->pre_result.action));
+       }
+
+
        task->flags |= RSPAMD_TASK_FLAG_PROCESSING;
 
        st = rspamd_task_select_processing_stage (task, stages);
@@ -439,13 +447,6 @@ rspamd_task_process (struct rspamd_task *task, guint stages)
 
        case RSPAMD_TASK_STAGE_PRE_FILTERS:
                rspamd_lua_call_pre_filters (task);
-
-               if (task->pre_result.action != METRIC_ACTION_MAX) {
-                       /* Skip all if we have result here */
-                       task->processed_stages |= RSPAMD_TASK_STAGE_DONE;
-                       msg_info_task ("skip filters, as pre-filter returned %s action",
-                                       rspamd_action_to_str (task->pre_result.action));
-               }
                break;
 
        case RSPAMD_TASK_STAGE_FILTERS: