aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstat
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-22 17:12:26 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-22 17:12:26 +0100
commit07c1e22dd41706da616ede7a0fee4de20fcd2582 (patch)
treedece357559744145445c6308e62e8b09570f7180 /src/libstat
parentbc235cf8d945e58b9fe13d5d17973457f45b8480 (diff)
downloadrspamd-07c1e22dd41706da616ede7a0fee4de20fcd2582.tar.gz
rspamd-07c1e22dd41706da616ede7a0fee4de20fcd2582.zip
Set error if cannot learn anything.
Diffstat (limited to 'src/libstat')
-rw-r--r--src/libstat/stat_process.c10
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;
}