aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/fuzzy_check.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c
index 3eed0da51..58ba610fe 100644
--- a/src/plugins/fuzzy_check.c
+++ b/src/plugins/fuzzy_check.c
@@ -2960,7 +2960,8 @@ fuzzy_process_handler (struct rspamd_http_connection_entry *conn_ent,
struct fuzzy_rule *rule;
struct rspamd_controller_session *session = conn_ent->ud;
struct rspamd_task *task, **ptask;
- gboolean processed = FALSE, res = TRUE, skip = FALSE;
+ gboolean processed = FALSE, skip = FALSE;
+ gint res = 0;
guint i;
GError **err;
GPtrArray *commands;
@@ -3118,19 +3119,24 @@ fuzzy_process_handler (struct rspamd_http_connection_entry *conn_ent,
}
}
-
- if (res) {
+ if (res > 0) {
processed = TRUE;
}
}
if (res == -1) {
- msg_warn_task ("cannot send fuzzy request: %s",
- strerror (errno));
- rspamd_controller_send_error (conn_ent, 400, "Message sending error");
- rspamd_task_free (task);
+ if (!processed) {
+ msg_warn_task ("cannot send fuzzy request: %s",
+ strerror (errno));
+ rspamd_controller_send_error (conn_ent, 400, "Message sending error");
+ rspamd_task_free (task);
- return;
+ return;
+ }
+ else {
+ /* Some rules failed and some rules are OK */
+ msg_warn_task ("some rules are not processed, but we still sent this request");
+ }
}
else if (!processed) {
if (rules) {