From: Vsevolod Stakhov Date: Wed, 23 Oct 2019 11:39:34 +0000 (+0100) Subject: [Minor] Spamassassin: Exclude symbol name from options X-Git-Tag: 2.1~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2ee4ab715eadeaba2a23dcf44d5a93ad082e1b4b;p=thirdparty%2Frspamd.git [Minor] Spamassassin: Exclude symbol name from options --- diff --git a/src/plugins/lua/spamassassin.lua b/src/plugins/lua/spamassassin.lua index 2e34201a40..2ba0b6228a 100644 --- a/src/plugins/lua/spamassassin.lua +++ b/src/plugins/lua/spamassassin.lua @@ -1466,14 +1466,19 @@ local function post_process() local res = 0 local trace = {} -- XXX: need to memoize result for better performance - local sym = task:has_symbol(k) - if not sym then + local has_sym = task:has_symbol(k) + if not has_sym then if expression then res,trace = expression:process_traced(task) end if res > 0 then -- Symbol should be one shot to make it working properly - task:insert_result(k, res, trace) + + -- Exclude elements that are named in the same way as the symbol itself + local function exclude_sym_filter(sopt) + return sopt ~= k + end + task:insert_result(k, res, fun.totable(fun.filter(exclude_sym_filter, trace))) end else res = 1