commit d497964: [Fix] Empty envelopes should not be emitted as arrays (json+messagepack) when populated envelopes are objects. This greatly complicates decoding in strictly typed languages.

Jason Stephenson j.stephenson at live.co.uk
Fri Jul 15 21:35:03 UTC 2022


Author: Jason Stephenson
Date: 2022-07-15 16:10:45 +0100
URL: https://github.com/rspamd/rspamd/commit/d4979648e9b052f87bc408e3c45b649a6bb54389

[Fix] Empty envelopes should not be emitted as arrays (json+messagepack) when populated envelopes are objects. This greatly complicates decoding in strictly typed languages.

---
 lualib/lua_mime.lua | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lualib/lua_mime.lua b/lualib/lua_mime.lua
index 4f8450964..575e9152c 100644
--- a/lualib/lua_mime.lua
+++ b/lualib/lua_mime.lua
@@ -596,7 +596,8 @@ exports.message_to_ucl = function(task, stringify_content)
 
     return nil
   end
-  -- Envelope (smtp) information form email
+
+  -- Envelope (smtp) information from email (nil if empty)
   result.envelope = {
     from_smtp = (task:get_from('smtp') or E)[1],
     recipients_smtp = task:get_recipients('smtp'),
@@ -605,6 +606,9 @@ exports.message_to_ucl = function(task, stringify_content)
     client_ip = maybe_stringify_ip(task:get_client_ip()),
     from_ip = maybe_stringify_ip(task:get_from_ip()),
   }
+  if not next(result.envelope) then
+    result.envelope = nil
+  end
 
   local parts = task:get_parts() or E
   result.parts = {}


More information about the Commits mailing list