summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libserver/task.c4
-rw-r--r--src/worker.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/libserver/task.c b/src/libserver/task.c
index 00ff9003d..d19362fca 100644
--- a/src/libserver/task.c
+++ b/src/libserver/task.c
@@ -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;
}
diff --git a/src/worker.c b/src/worker.c
index 20945bd89..229ee1a4e 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -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;
}