diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-30 17:09:31 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-30 17:09:31 +0100 |
commit | 7cc961501dfae75d2c389e95375de43d2332e444 (patch) | |
tree | 9dde4de89a21a3b1326aa4d342fb1f520d4446d3 | |
parent | 25e9053f5881057057d28450f869423c36748409 (diff) | |
download | rspamd-7cc961501dfae75d2c389e95375de43d2332e444.tar.gz rspamd-7cc961501dfae75d2c389e95375de43d2332e444.zip |
Increase HTTP conn refcount during task processing.
-rw-r--r-- | src/webui.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/webui.c b/src/webui.c index 685e17604..aa009f9e5 100644 --- a/src/webui.c +++ b/src/webui.c @@ -795,10 +795,12 @@ rspamd_webui_learn_fin_task (void *ud) if (!learn_task_spam (session->cl, task, session->is_spam, &err)) { rspamd_controller_send_error (conn_ent, 500 + err->code, err->message); + rspamd_http_connection_unref (conn_ent->conn); return TRUE; } /* Successful learn */ rspamd_controller_send_string (conn_ent, "{\"success\":true}"); + rspamd_http_connection_unref (conn_ent->conn); return TRUE; } @@ -813,6 +815,7 @@ rspamd_webui_check_fin_task (void *ud) task->http_conn = conn_ent->conn; rspamd_protocol_write_reply (task); conn_ent->is_reply = TRUE; + rspamd_http_connection_unref (conn_ent->conn); return TRUE; } @@ -856,6 +859,7 @@ rspamd_webui_handle_learn_common (struct rspamd_http_connection_entry *conn_ent, task->resolver = ctx->resolver; task->ev_base = ctx->ev_base; + rspamd_http_connection_ref (conn_ent->conn); task->s = new_async_session (session->pool, rspamd_webui_learn_fin_task, NULL, rspamd_task_free_hard, task); task->s->wanna_die = TRUE; @@ -936,6 +940,7 @@ rspamd_webui_handle_scan (struct rspamd_http_connection_entry *conn_ent, task->resolver = ctx->resolver; task->ev_base = ctx->ev_base; + rspamd_http_connection_ref (conn_ent->conn); task->s = new_async_session (session->pool, rspamd_webui_check_fin_task, NULL, rspamd_task_free_hard, task); task->s->wanna_die = TRUE; |