From: Vsevolod Stakhov Date: Mon, 3 Feb 2020 13:37:08 +0000 (+0000) Subject: [Minor] Fix id priorities application X-Git-Tag: 2.3~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=91c623b74c85b242c856dfac1bdc8dd7651792bf;p=thirdparty%2Frspamd.git [Minor] Fix id priorities application --- diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index 3855c3cc47..16aa156247 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -5593,8 +5593,11 @@ lua_task_set_settings_id (lua_State *L) if (task->settings_elt) { if (task->settings_elt->id != id) { - return luaL_error (L, "settings id has been already set to %d (%s)", - task->settings_elt->id, task->settings_elt->name); + return luaL_error (L, "settings id has been already set to %d (%s); " + "trying to set it to %d", + task->settings_elt->id, + task->settings_elt->name, + id); } } else { diff --git a/src/plugins/lua/settings.lua b/src/plugins/lua/settings.lua index be22bf1e5d..bc91bf4c8e 100644 --- a/src/plugins/lua/settings.lua +++ b/src/plugins/lua/settings.lua @@ -253,6 +253,18 @@ local function check_ip_setting(expected, ip) return false end +local function priority_to_string(pri) + if pri then + if pri >= 3 then + return "high" + elseif pri >= 2 then + return "medium" + end + end + + return "low" +end + -- Check limit for a task local function check_settings(task) local function check_specific_setting(rule, matched) @@ -296,20 +308,21 @@ local function check_settings(task) if query_apply then if id_elt then apply_settings(task, query_apply, id_elt.id) - rspamd_logger.infox(task, "applied settings id %s(%s)", - id_elt.name, id_elt.id) + rspamd_logger.infox(task, "applied settings id %s(%s); priority %s", + id_elt.name, id_elt.id, priority_to_string(priority)) else apply_settings(task, query_apply, nil) - rspamd_logger.infox(task, "applied settings from query") + rspamd_logger.infox(task, "applied settings from query; priority %s", + priority_to_string(priority)) end end end local min_pri = 1 if query_apply then - if priority > min_pri then - -- Do not check lower priorities - min_pri = priority + if priority >= min_pri then + -- Do not check lower or equal priorities + min_pri = priority + 1 end if priority > max_pri then @@ -347,10 +360,11 @@ local function check_settings(task) if not cached or not cached.settings or not cached.settings.apply then rspamd_logger.errx(task, 'unregistered settings id found: %s!', s.rule.id) else - rspamd_logger.infox(task, "<%s> apply static settings %s (id = %s); %s matched", + rspamd_logger.infox(task, "<%s> apply static settings %s (id = %s); %s matched; priority %s", task:get_message_id(), cached.name, s.rule.id, - table.concat(matched, ',')) + table.concat(matched, ','), + priority_to_string(pri)) apply_settings(task, cached.settings.apply, s.rule.id) end