]> source.dussan.org Git - rspamd.git/commitdiff
[Project] BIMI: Fix helper integration issues
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 7 Nov 2021 12:53:53 +0000 (12:53 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 7 Nov 2021 12:54:14 +0000 (12:54 +0000)
src/plugins/lua/bimi.lua

index 9cd3d0ac88c6c24b827bb83de97d5e8929b80a3d..a2846c56e47271da53007a67a7700053e30bb92c 100644 (file)
@@ -176,7 +176,7 @@ local function make_helper_request(task, domain, record, redis_server)
     sync = is_sync,
     redis_server = redis_server,
     redis_prefix = settings.redis_prefix,
-    redis_expiry = settings.redis_min_expiry,
+    redis_expiry = settings.redis_min_expiry * 1000.0, -- helper accepts milliseconds
     domain = domain
   }
 
@@ -207,12 +207,24 @@ local function check_bimi_vmc(task, domain, record)
     else
       if type(data) == 'string' then
         -- We got a cached record, good stuff
+        lua_util.debugm(N, task, "got valid cached BIMI result for domain: %s",
+            domain)
         process_bimi_json(task, domain, data)
       else
         -- Get server addr + port
-        -- TODO: add db/password support maybe?
-        local redis_server = string.format('redis://%s',
-            upstream:get_addr():to_string(true))
+        -- We need to fix IPv6 address as redis-rs has no support of
+        -- the braced IPv6 addresses
+        local db, password = '', ''
+        if redis_params.db then
+          db = string.format('/%s', redis_params.db)
+        end
+        if redis_params.password then
+          password = string.format(':%s@', redis_params.password)
+        end
+        local redis_server = string.format('redis://%s%s:%s%s',
+            password,
+            upstream:get_name(), upstream:get_port(),
+            db)
         make_helper_request(task, domain, record, redis_server)
       end
     end