diff options
-rw-r--r-- | lualib/lua_settings.lua | 2 | ||||
-rw-r--r-- | src/plugins/lua/neural.lua | 14 |
2 files changed, 11 insertions, 5 deletions
diff --git a/lualib/lua_settings.lua b/lualib/lua_settings.lua index 61cc9d2ad..bb0ea0457 100644 --- a/lualib/lua_settings.lua +++ b/lualib/lua_settings.lua @@ -170,6 +170,8 @@ local function numeric_settings_id(str) return ret end +exports.numeric_settings_id = numeric_settings_id + -- Used to do the following: -- If there is a group of symbols_allowed, it checks if that is an array -- If that is a hash table then we transform it to a normal list, probably adding symbols to adjust scores diff --git a/src/plugins/lua/neural.lua b/src/plugins/lua/neural.lua index 12dadd8d6..da569e698 100644 --- a/src/plugins/lua/neural.lua +++ b/src/plugins/lua/neural.lua @@ -1293,7 +1293,11 @@ local function process_rules_settings() -- We set table rule.settings[id] -> { name = name, symbols = symbols, digest = digest } for s,_ in pairs(rule.allowed_settings) do -- Here, we have a name, set of symbols and - local selt = lua_settings.settings_by_id(s) + local settings_id = s + if type(settings_id) ~= 'number' then + settings_id = lua_settings.numeric_settings_id(s) + end + local selt = lua_settings.settings_by_id(settings_id) local nelt = { symbols = selt.symbols, -- Already sorted @@ -1308,16 +1312,16 @@ local function process_rules_settings() lua_util.debugm(N, rspamd_config, 'added reference from settings id %s to %s; same symbols', nelt.name, ex.name) - rule.settings[s] = id + rule.settings[settings_id] = id nelt = nil end end end if nelt then - rule.settings[s] = nelt - lua_util.debugm(N, rspamd_config, 'added new settings id %s to %s', - nelt.name, rule.prefix) + rule.settings[settings_id] = nelt + lua_util.debugm(N, rspamd_config, 'added new settings id %s(%s) to %s', + nelt.name, settings_id, rule.prefix) end end end |