]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Fix learn errors reporting
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 9 Jan 2016 21:57:36 +0000 (21:57 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 9 Jan 2016 21:57:36 +0000 (21:57 +0000)
src/controller.c
src/libserver/task.c
src/libstat/stat_process.c
src/worker.c

index e5b06c2db31485fceeaf817c4e4daca5ade1bda1..bef6fa61b3487ee60041c3ea0bc992364032b59f 100644 (file)
@@ -1199,11 +1199,18 @@ rspamd_controller_learn_fin_task (void *ud)
        }
 
        if (RSPAMD_TASK_IS_PROCESSED (task)) {
-               msg_info_session ("<%s> learned message as %s: %s",
-                               rspamd_inet_address_to_string (session->from_addr),
-                               session->is_spam ? "spam" : "ham",
-                                               task->message_id);
-               rspamd_controller_send_string (conn_ent, "{\"success\":true}");
+               if (task->err) {
+                       rspamd_controller_send_error (conn_ent, task->err->code,
+                                       task->err->message);
+               }
+               else {
+                       msg_info_session ("<%s> learned message as %s: %s",
+                                       rspamd_inet_address_to_string (session->from_addr),
+                                       session->is_spam ? "spam" : "ham",
+                                                       task->message_id);
+                       rspamd_controller_send_string (conn_ent, "{\"success\":true}");
+               }
+
                return TRUE;
        }
 
index fe7d490c204cc82682f97c5c51be15c093e772c4..2f79b540b47b8cec022608188606b578c0ad842c 100644 (file)
@@ -455,7 +455,9 @@ rspamd_task_process (struct rspamd_task *task, guint stages)
 
        case RSPAMD_TASK_STAGE_POST_FILTERS:
                rspamd_lua_call_post_filters (task);
-               rspamd_stat_check_autolearn (task);
+               if (task->flags & RSPAMD_TASK_FLAG_LEARN_AUTO) {
+                       rspamd_stat_check_autolearn (task);
+               }
                break;
 
        case RSPAMD_TASK_STAGE_LEARN:
index 81986f5520d8ec4d83693f45de2b943e603de738..4bf99b98b2883130de348d161193fd3d499f0275 100644 (file)
@@ -843,10 +843,6 @@ rspamd_stat_check_autolearn (struct rspamd_task *task)
                }
        }
 
-       if (ret) {
-               task->flags |= RSPAMD_TASK_FLAG_LEARN_AUTO;
-       }
-
        return ret;
 }
 
index 6e46c15a755df07ceb9e2ac8dc2009c997b672bd..9c5f0bd40eaa1de80b844ee6df888e42485b7c8d 100644 (file)
@@ -255,6 +255,8 @@ accept_socket (gint fd, short what, void *arg)
 
        worker->srv->stat->connections_count++;
        task->resolver = ctx->resolver;
+       /* TODO: allow to disable autolearn in protocol */
+       task->flags |= RSPAMD_TASK_FLAG_LEARN_AUTO;
 
        task->http_conn = rspamd_http_connection_new (
                rspamd_worker_body_handler,