Quellcode durchsuchen

[Minor] Improve learn error reporting

tags/3.1
Vsevolod Stakhov vor 2 Jahren
Ursprung
Commit
eb0ec636b6
1 geänderte Dateien mit 31 neuen und 20 gelöschten Zeilen
  1. 31
    20
      src/libstat/stat_process.c

+ 31
- 20
src/libstat/stat_process.c Datei anzeigen

@@ -339,14 +339,12 @@ rspamd_stat_backends_process (struct rspamd_stat_ctx *st_ctx,
{
guint i;
struct rspamd_statfile *st;
struct rspamd_classifier *cl;
gpointer bk_run;

g_assert (task->stat_runtimes != NULL);

for (i = 0; i < st_ctx->statfiles->len; i++) {
st = g_ptr_array_index (st_ctx->statfiles, i);
cl = st->classifier;
bk_run = g_ptr_array_index (task->stat_runtimes, i);

if (bk_run != NULL) {
@@ -677,7 +675,7 @@ rspamd_stat_backends_learn (struct rspamd_stat_ctx *st_ctx,
gpointer bk_run;
guint i, j;
gint id;
gboolean res = FALSE;
gboolean res = FALSE, backend_found = FALSE;

for (i = 0; i < st_ctx->classifiers->len; i ++) {
cl = g_ptr_array_index (st_ctx->classifiers, i);
@@ -714,11 +712,14 @@ rspamd_stat_backends_learn (struct rspamd_stat_ctx *st_ctx,
goto end;
}

msg_warn_task ("no runtime for backend %s; classifier %s; symbol %s",
msg_debug_task ("no runtime for backend %s; classifier %s; symbol %s",
st->backend->name, cl->cfg->name, st->stcf->symbol);
continue;
}

/* We set sel merely when we have runtime */
backend_found = TRUE;

if (!(task->flags & RSPAMD_TASK_FLAG_UNLEARN)) {
if (!!spam != !!st->stcf->is_spam) {
/* If we are not unlearning, then do not touch another class */
@@ -748,26 +749,36 @@ rspamd_stat_backends_learn (struct rspamd_stat_ctx *st_ctx,
}

end:
if (!res && err) {
return res;
}

if (!res && sel == NULL) {
if (classifier) {
g_set_error (err, rspamd_stat_quark (), 404, "cannot find classifier "
"with name %s", classifier);
}
else {
g_set_error (err, rspamd_stat_quark (), 404, "no classifiers defined");
if (!res) {
if (err && *err) {
/* Error has been set already */
return res;
}

return FALSE;
}
if (sel == NULL) {
if (classifier) {
g_set_error(err, rspamd_stat_quark(), 404, "cannot find classifier "
"with name %s", classifier);
}
else {
g_set_error(err, rspamd_stat_quark(), 404, "no classifiers defined");
}

if (!res) {
g_set_error (err, rspamd_stat_quark (), 404, "cannot find statfile "
"backend to learn %s in %s", spam ? "spam" : "ham",
classifier ? classifier : "default classifier");
return FALSE;
}
else if (!backend_found) {
g_set_error(err, rspamd_stat_quark(), 404, "all learn conditions "
"denied learning %s in %s",
spam ? "spam" : "ham",
classifier ? classifier : "default classifier");
}
else {
g_set_error(err, rspamd_stat_quark(), 404, "cannot find statfile "
"backend to learn %s in %s",
spam ? "spam" : "ham",
classifier ? classifier : "default classifier");
}
}

return res;

Laden…
Abbrechen
Speichern