From: Jason Stephenson Date: Fri, 15 Jul 2022 15:10:45 +0000 (+0100) Subject: [Fix] Empty envelopes should not be emitted as arrays (json+messagepack) when populat... X-Git-Tag: 3.3~129^2~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d4979648e9b052f87bc408e3c45b649a6bb54389;p=rspamd.git [Fix] Empty envelopes should not be emitted as arrays (json+messagepack) when populated envelopes are objects. This greatly complicates decoding in strictly typed languages. --- 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 = {}