]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Controller sockets are owned by router do not export them to task.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 22 Sep 2015 08:52:24 +0000 (09:52 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 22 Sep 2015 08:52:24 +0000 (09:52 +0100)
src/controller.c

index 73a867c1a427e612815c13ba71640d8d4b658627..c0936da2852cb7991db38c6a019c83ce5ad5eab9 100644 (file)
@@ -1282,24 +1282,22 @@ rspamd_controller_handle_learn_common (
                        task);
        task->fin_arg = conn_ent;
        task->http_conn = rspamd_http_connection_ref (conn_ent->conn);;
-       task->sock = conn_ent->conn->fd;
+       task->sock = -1;
+       session->task = task;
+       session->cl = cl;
 
 
        if (!rspamd_task_load_message (task, msg, msg->body->str, msg->body->len)) {
                rspamd_controller_send_error (conn_ent, task->err->code, task->err->message);
-               rspamd_session_destroy (task->s);
                return 0;
        }
 
        if (!rspamd_task_process (task, RSPAMD_TASK_PROCESS_LEARN)) {
-               msg_warn_session ("message cannot be processed for %s", task->message_id);
+               msg_warn_session ("<%s> message cannot be processed", task->message_id);
                rspamd_controller_send_error (conn_ent, task->err->code, task->err->message);
-               rspamd_session_destroy (task->s);
                return 0;
        }
 
-       session->task = task;
-       session->cl = cl;
        session->is_spam = is_spam;
        rspamd_session_pending (task->s);
 
@@ -2035,6 +2033,7 @@ rspamd_controller_finish_handler (struct rspamd_http_connection_entry *conn_ent)
        }
 
        rspamd_inet_address_destroy (session->from_addr);
+       msg_debug_session ("destroy session %p", session);
        g_slice_free1 (sizeof (struct rspamd_controller_session), session);
 }