diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-22 17:12:26 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-07-22 17:12:26 +0100 |
commit | 07c1e22dd41706da616ede7a0fee4de20fcd2582 (patch) | |
tree | dece357559744145445c6308e62e8b09570f7180 /src/libstat | |
parent | bc235cf8d945e58b9fe13d5d17973457f45b8480 (diff) | |
download | rspamd-07c1e22dd41706da616ede7a0fee4de20fcd2582.tar.gz rspamd-07c1e22dd41706da616ede7a0fee4de20fcd2582.zip |
Set error if cannot learn anything.
Diffstat (limited to 'src/libstat')
-rw-r--r-- | src/libstat/stat_process.c | 10 |
1 files 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; } |