From: Vsevolod Stakhov Date: Thu, 29 Sep 2016 20:39:35 +0000 (+0100) Subject: [Minor] Do not override high priority settings with low prio ones X-Git-Tag: 1.4.0~354 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac77a153fea7cfc809ce6a546f2eb4fccf3cbd53;p=thirdparty%2Frspamd.git [Minor] Do not override high priority settings with low prio ones Issue: #981 Reported by: @moisseev --- diff --git a/src/plugins/lua/settings.lua b/src/plugins/lua/settings.lua index c9c7eeeba0..bf403d5bd1 100644 --- a/src/plugins/lua/settings.lua +++ b/src/plugins/lua/settings.lua @@ -270,8 +270,10 @@ local function check_settings(task) end end -- Match rules according their order + local applied = false + for pri = max_pri,1,-1 do - if settings[pri] then + if not applied and settings[pri] then for name, r in pairs(settings[pri]) do local rule = check_specific_setting(name, r, ip, client_ip, from, rcpt, user, uname) if rule then @@ -279,6 +281,7 @@ local function check_settings(task) task:get_message_id(), name) if rule['apply'] then task:set_settings(rule['apply']) + applied = true end if rule['symbols'] then -- Add symbols, specified in the settings