]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Lua_util: Add maybe_smtp_quote_value
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Oct 2020 16:01:41 +0000 (17:01 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Oct 2020 16:01:41 +0000 (17:01 +0100)
lualib/lua_util.lua

index bcb697e2c568b575cb62fde9eeed093646f26303..a7a0e6938332291c7f282757d07c52e186e83dc0 100644 (file)
@@ -1431,4 +1431,20 @@ exports.is_skip_local_or_authed = function(task, conf, ip)
   return false
 end
 
+---[[[
+-- @function lua_util.maybe_smtp_quote_value(str)
+-- Checks string for the forbidden elements (tspecials in RFC and quote string if needed)
+-- @param {string} str input string
+-- @return {string} original or quoted string
+--]]]
+local tspecial = lpeg.S"()<>@,;:\\\"/[]?= \t\v"
+local special_match = lpeg.P((1 - tspecial)^0 * tspecial^1)
+exports.maybe_smtp_quote_value = function(str)
+  if special_match:match(str) then
+    return string.format('"%s"', str:gsub('"', '\\"'))
+  end
+
+  return str
+end
+
 return exports