aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lua/settings.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/lua/settings.lua')
-rw-r--r--src/plugins/lua/settings.lua22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/plugins/lua/settings.lua b/src/plugins/lua/settings.lua
index 48dca67b9..da9a56553 100644
--- a/src/plugins/lua/settings.lua
+++ b/src/plugins/lua/settings.lua
@@ -29,6 +29,7 @@ local rspamd_util = require "rspamd_util"
local rspamd_ip = require "rspamd_ip"
local rspamd_regexp = require "rspamd_regexp"
local lua_selectors = require "lua_selectors"
+local lua_settings = require "lua_settings"
local ucl = require "ucl"
local fun = require "fun"
@@ -36,7 +37,6 @@ local redis_params
local settings = {}
local N = "settings"
-local settings_ids = {}
local settings_initialized = false
local max_pri = 0
@@ -143,10 +143,10 @@ local function check_query_settings(task)
end
if settings_id and settings_initialized then
- -- settings_id is rspamd text, so need to convert it to string for lua
- local elt = settings_ids[settings_id]
+ local elt = lua_settings.settings_by_id(settings_id)
if elt then
+ elt = elt.settings
if elt['whitelist'] then
elt['apply'] = {whitelist = true}
end
@@ -746,14 +746,6 @@ local function process_settings_table(tbl)
if not elt.id then
elt.id = name
end
- if elt['id'] then
- local cr = require "rspamd_cryptobox_hash"
- out.id = rspamd_util.unpack("I4",
- cr.create_specific('xxh64'):update(elt.id):bin())
- lua_util.debugm(N, rspamd_config, 'added settings id to "%s": %s -> %s',
- name, elt.id, out.id)
- settings_ids[out.id] = out
- end
if elt['apply'] then
-- Just insert all metric results to the action key
@@ -765,6 +757,12 @@ local function process_settings_table(tbl)
return nil
end
+ if elt['id'] then
+ out.id = lua_settings.register_settings_id(elt.id, out)
+ lua_util.debugm(N, rspamd_config, 'added settings id to "%s": %s -> %s',
+ name, elt.id, out.id)
+ end
+
return out
end
@@ -781,7 +779,7 @@ local function process_settings_table(tbl)
-- clear all settings
max_pri = 0
local nrules = 0
- settings_ids = {}
+ lua_settings.reset_ids()
for k in pairs(settings) do settings[k]={} end
-- fill new settings by priority
fun.for_each(function(k, v)