commit 3f14f4a: [Minor] Add authentication results parser function
Vsevolod Stakhov
vsevolod at highsecure.ru
Sat Jan 8 20:21:05 UTC 2022
Author: Vsevolod Stakhov
Date: 2022-01-08 14:34:58 +0000
URL: https://github.com/rspamd/rspamd/commit/3f14f4a3e583593cb55bdd5604db3d9af8e65da5
[Minor] Add authentication results parser function
---
lualib/lua_auth_results.lua | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/lualib/lua_auth_results.lua b/lualib/lua_auth_results.lua
index f7a319f48..7b41e6ff5 100644
--- a/lualib/lua_auth_results.lua
+++ b/lualib/lua_auth_results.lua
@@ -275,4 +275,28 @@ end
exports.gen_auth_results = gen_auth_results
+local aar_elt_grammar
+-- This function parses an ar element to a table of kv pairs that represents different
+-- elements
+local function parse_ar_element(elt)
+
+ if not aar_elt_grammar then
+ -- Generate grammar
+ local lpeg = require "lpeg"
+ local P = lpeg.P
+ local S = lpeg.S
+ local V = lpeg.V
+ local C = lpeg.C
+ local space = S(" ")^0
+ local doublequoted = space * P'"' * ((1 - S'"\r\n\f\\') + (P'\\' * 1))^0 * '"' * space
+ local comment = space * P{ "(" * ((1 - S"()") + V(1))^0 * ")" } * space
+ local name = C((1 - S('=(" '))^1) * space
+ local pair = lpeg.Cg(name * "=" * space * name) * space
+ aar_elt_grammar = lpeg.Cf(lpeg.Ct("") * (pair + comment + doublequoted)^1, rawset)
+ end
+
+ return aar_elt_grammar:match(elt)
+end
+exports.parse_ar_element = parse_ar_element
+
return exports
More information about the Commits
mailing list