summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-05-12 14:52:39 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-05-12 14:52:39 +0100
commitd7941731d1f63381c791e1e306cefc1eba732517 (patch)
tree553fa6c918663a6b71ebe89312cce5f4107aac8a /src
parente14bd789c8c9bb8cc6975cf84440cef7ba68a5ea (diff)
downloadrspamd-d7941731d1f63381c791e1e306cefc1eba732517.tar.gz
rspamd-d7941731d1f63381c791e1e306cefc1eba732517.zip
Fix issue in task processing.
Diffstat (limited to 'src')
-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;
}