]> source.dussan.org Git - rspamd.git/commitdiff
Fix issue in task processing.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 May 2014 13:52:39 +0000 (14:52 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 May 2014 13:52:39 +0000 (14:52 +0100)
src/libserver/task.c
src/worker.c

index 00ff9003d4cfd91a995324bc252f0dc843b6a08f..d19362fca5c8fb21c50690cbd93e1275c0b542ff 100644 (file)
@@ -325,7 +325,6 @@ rspamd_task_process (struct rspamd_task *task,
                if (task->is_skipped) {
                        /* Call write_socket to write reply and exit */
                        task->state = WRITE_REPLY;
-                       return TRUE;
                }
        }
        else {
@@ -333,8 +332,9 @@ rspamd_task_process (struct rspamd_task *task,
                /* We want fin_task after pre filters are processed */
                task->s->wanna_die = TRUE;
                task->state = WAIT_PRE_FILTER;
-               check_session_pending (task->s);
        }
 
+       check_session_pending (task->s);
+
        return TRUE;
 }
index 20945bd89e5ee941cc62407fc7fe9dd04fff8b6d..229ee1a4eaf3aeb5fdd184bb9f649ed3b9557d99 100644 (file)
@@ -127,7 +127,9 @@ rspamd_worker_body_handler (struct rspamd_http_connection *conn,
                return 0;
        }
 
-       rspamd_task_process (task, msg, ctx->classify_pool, TRUE);
+       if (!rspamd_task_process (task, msg, ctx->classify_pool, TRUE)) {
+               rspamd_protocol_write_reply (task);
+       }
 
        return 0;
 }