]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Update elastic.lua
authorDmitriy Alekseev <1865999+dragoangel@users.noreply.github.com>
Wed, 14 Sep 2022 09:16:29 +0000 (12:16 +0300)
committerGitHub <noreply@github.com>
Wed, 14 Sep 2022 09:16:29 +0000 (12:16 +0300)
src/plugins/lua/elastic.lua

index 8d20720bc51c4743f2e790a5f44ad4630c1bef03..b93186f9a9300a524aea326565fcb20eae044ad2 100644 (file)
@@ -121,29 +121,26 @@ local function get_general_metadata(task)
   local r = {}
   local ip_addr = task:get_ip()
 
-  r.webmail = false
-
   if ip_addr  and ip_addr:is_valid() then
     r.is_local = ip_addr:is_local()
-    local origin = task:get_header('X-Originating-IP')
-    if origin then
-      origin = string.sub(origin, 2, -2)
-      local rspamd_ip = require "rspamd_ip"
-      local test = rspamd_ip.from_string(origin)
-
-      if test and test:is_valid() then
-        r.webmail = true
-        r.ip = origin
-      else
-        r.ip = tostring(ip_addr)
-      end
-    else
-      r.ip = tostring(ip_addr)
-    end
+    r.ip = tostring(ip_addr)
   else
     r.ip = '127.0.0.1'
   end
 
+  r.webmail = false
+  r.sender_ip = 'unknown'
+  local origin = task:get_header('X-Originating-IP')
+  if origin then
+    origin = origin:gsub('%[', ''):gsub('%]', '')
+    local rspamd_ip = require "rspamd_ip"
+    local origin_ip = rspamd_ip.from_string(origin)
+    if origin_ip and origin_ip:is_valid() then
+      r.webmail = true
+      r.sender_ip = origin -- use string here
+    end
+  end
+
   r.direction = "Inbound"
   r.user = task:get_user() or 'unknown'
   r.qid = task:get_queue_id() or 'unknown'