commit ae79456: [Minor] Mx_check: Fix issue with multiple IPs per MX name

Vsevolod Stakhov vsevolod at highsecure.ru
Fri Aug 6 15:42:07 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-08-06 16:37:30 +0100
URL: https://github.com/rspamd/rspamd/commit/ae794569d7722c2b59bd2c4468cf41dae1d14121 (HEAD -> master)

[Minor] Mx_check: Fix issue with multiple IPs per MX name
Issue: #3839

---
 src/plugins/lua/mx_check.lua | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/plugins/lua/mx_check.lua b/src/plugins/lua/mx_check.lua
index e131d16d4..c88aa5601 100644
--- a/src/plugins/lua/mx_check.lua
+++ b/src/plugins/lua/mx_check.lua
@@ -152,24 +152,23 @@ local function mx_check(task)
         check_results(mxes)
       end
 
-      if err or not results then
+      if err or not results or #results == 0 then
         mxes[name].checked = true
       else
-        -- Try to open TCP connection to port 25
-
-        for _,res in ipairs(results) do
-          local t_ret = rspamd_tcp.new({
-            task = task,
-            host = res:to_string(),
-            callback = io_cb,
-            on_connect = on_connect_cb,
-            timeout = settings.timeout,
-            port = 25
-          })
+        -- Try to open TCP connection to port 25 for a random IP address
+        -- see #3839 on GitHub
+        lua_util.shuffle(results)
+        local t_ret = rspamd_tcp.new({
+          task = task,
+          host = results[1]:to_string(),
+          callback = io_cb,
+          on_connect = on_connect_cb,
+          timeout = settings.timeout,
+          port = 25
+        })
 
-          if not t_ret then
-            mxes[name].checked = true
-          end
+        if not t_ret then
+          mxes[name].checked = true
         end
       end
       check_results(mxes)


More information about the Commits mailing list