]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Treat learning errors as non-fatal
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 27 Nov 2018 11:56:28 +0000 (11:56 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 27 Nov 2018 11:56:28 +0000 (11:56 +0000)
Issue: #2637

src/client/rspamdclient.c
src/libstat/stat_process.c

index 490e5c36941937c80d6f58a8b5a4b1385f47a2a6..a4a1fb95e31d5014ac92f21db1f1092a051b6ac1 100644 (file)
@@ -124,7 +124,7 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
                return 0;
        }
        else {
-               if (rspamd_http_message_get_body (msg, NULL) == NULL || msg->code != 200) {
+               if (rspamd_http_message_get_body (msg, NULL) == NULL || msg->code / 100 != 2) {
                        err = g_error_new (RCLIENT_ERROR, msg->code, "HTTP error: %d, %.*s",
                                        msg->code,
                                        (gint)msg->status->len, msg->status->str);
index d601dbee93d364f9f71f9d351128a12f71e0132a..d097e12e0b3ce5a567216fc1aa7cee21d412801d 100644 (file)
@@ -526,7 +526,7 @@ rspamd_stat_classifiers_learn (struct rspamd_stat_ctx *st_ctx,
        if ((task->flags & RSPAMD_TASK_FLAG_ALREADY_LEARNED) && err != NULL &&
                        *err == NULL) {
                /* Do not learn twice */
-               g_set_error (err, rspamd_stat_quark (), 404, "<%s> has been already "
+               g_set_error (err, rspamd_stat_quark (), 208, "<%s> has been already "
                                "learned as %s, ignore it", task->message_id,
                                spam ? "spam" : "ham");
 
@@ -635,7 +635,7 @@ rspamd_stat_classifiers_learn (struct rspamd_stat_ctx *st_ctx,
 
        if (!learned && err && *err == NULL) {
                if (too_large) {
-                       g_set_error (err, rspamd_stat_quark (), 400,
+                       g_set_error (err, rspamd_stat_quark (), 204,
                                        "<%s> contains more tokens than allowed for %s classifier: "
                                        "%d > %d",
                                        task->message_id,
@@ -644,7 +644,7 @@ rspamd_stat_classifiers_learn (struct rspamd_stat_ctx *st_ctx,
                                        cl->cfg->max_tokens);
                }
                else if (too_small) {
-                       g_set_error (err, rspamd_stat_quark (), 400,
+                       g_set_error (err, rspamd_stat_quark (), 204,
                                        "<%s> contains less tokens than required for %s classifier: "
                                        "%d < %d",
                                        task->message_id,
@@ -653,7 +653,7 @@ rspamd_stat_classifiers_learn (struct rspamd_stat_ctx *st_ctx,
                                        cl->cfg->min_tokens);
                }
                else if (conditionally_skipped) {
-                       g_set_error (err, rspamd_stat_quark (), 410,
+                       g_set_error (err, rspamd_stat_quark (), 204,
                                        "<%s> is skipped for %s classifier: "
                                        "%s",
                                        task->message_id,