]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Maps: Export maps schema
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 27 Aug 2019 10:28:38 +0000 (11:28 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 27 Aug 2019 15:54:45 +0000 (16:54 +0100)
lualib/lua_maps.lua
src/plugins/lua/rbl.lua

index 6b478ded8b703dffc24596fca04d1d4185e6515f..094494dcaba43a6d47e125a288e9655277d68d57 100644 (file)
@@ -20,6 +20,7 @@ limitations under the License.
 ]]--
 
 local rspamd_logger = require "rspamd_logger"
+local ts = require("tableshape").types
 
 local exports = {}
 
@@ -315,4 +316,24 @@ end
 
 exports.rspamd_maybe_check_map = rspamd_maybe_check_map
 
+exports.map_schema = ts.one_of{
+  ts.string, -- 'http://some_map'
+  ts.array_of(ts.string), -- ['foo', 'bar']
+  ts.shape{ -- complex object
+    name = ts.string:is_optional(),
+    description = ts.string:is_optional(),
+    timeout = ts.number,
+    data = ts.array_of(ts.string):is_optional(),
+    -- Tableshape has no options support for something like key1 or key2?
+    upstreams = ts.one_of{
+      ts.string,
+      ts.array_of(ts.string),
+    }:is_optional(),
+    url = ts.one_of{
+      ts.string,
+      ts.array_of(ts.string),
+    }:is_optional(),
+  }
+}
+
 return exports
index 00a35e1d716bfec9d6cbdccdd675ec79bf5073dc..e0439e93bcb45a38a62fd91efbb5d87ee482651a 100644 (file)
@@ -27,6 +27,7 @@ local lua_util = require 'lua_util'
 local ts = require("tableshape").types
 local selectors = require "lua_selectors"
 local bit = require 'bit'
+local lua_maps = require "lua_maps"
 
 -- This plugin implements various types of RBL checks
 -- Documentation can be found here:
@@ -799,7 +800,7 @@ local default_options = {
 opts = lua_util.override_defaults(default_options, opts)
 
 if(opts['local_exclude_ip_map'] ~= nil) then
-  local_exclusions = rspamd_map_add(N, 'local_exclude_ip_map', 'radix',
+  local_exclusions = lua_maps.map_add(N, 'local_exclude_ip_map', 'radix',
     'RBL exclusions map')
 end