From 07c1e22dd41706da616ede7a0fee4de20fcd2582 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 22 Jul 2015 17:12:26 +0100 Subject: [PATCH] Set error if cannot learn anything. --- src/libstat/stat_process.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libstat/stat_process.c b/src/libstat/stat_process.c index b5293f8ac..536db9b16 100644 --- a/src/libstat/stat_process.c +++ b/src/libstat/stat_process.c @@ -361,7 +361,7 @@ rspamd_stat_classify (struct rspamd_task *task, lua_State *L, GError **err) struct classifier_ctx *cl_ctx; GList *cl_runtimes; GList *cur, *curst; - gboolean ret = RSPAMD_STAT_PROCESS_ERROR, compat = TRUE; + gboolean ret = RSPAMD_STAT_PROCESS_OK, compat = TRUE; const ucl_object_t *obj; st_ctx = rspamd_stat_get_ctx (); @@ -539,7 +539,7 @@ rspamd_stat_learn (struct rspamd_task *task, gboolean spam, lua_State *L, gulong nrev; rspamd_learn_t learn_res = RSPAMD_LEARN_OK; guint i; - gboolean compat = TRUE; + gboolean compat = TRUE, learned = FALSE; st_ctx = rspamd_stat_get_ctx (); g_assert (st_ctx != NULL); @@ -614,6 +614,7 @@ rspamd_stat_learn (struct rspamd_task *task, gboolean spam, lua_State *L, msg_debug ("learned %s classifier %s", spam ? "spam" : "ham", cl_run->clcf->name); ret = RSPAMD_STAT_PROCESS_OK; + learned = TRUE; cbdata.classifier_runtimes = cur; cbdata.task = task; @@ -660,6 +661,11 @@ rspamd_stat_learn (struct rspamd_task *task, gboolean spam, lua_State *L, cur = g_list_next (cur); } + if (!learned) { + g_set_error (err, rspamd_stat_quark (), 500, "message cannot be learned" + " for any classifier defined"); + } + return ret; } -- 2.39.5