]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
modules/policy: Add ANSWER action
authorLukáš Ježek <lukas.jezek@nic.cz>
Thu, 26 Mar 2020 08:05:46 +0000 (09:05 +0100)
committerPetr Špaček <petr.spacek@nic.cz>
Tue, 14 Apr 2020 14:55:52 +0000 (16:55 +0200)
modules/policy/policy.lua

index 23cba3dfcfe7e8618dc790ba8b019e24d7b60d5e..c04d4f788c6e75224a54af0d02ca66efaf8329f0 100644 (file)
@@ -209,6 +209,22 @@ function policy.FLAGS(opts_set, opts_clear)
        end
 end
 
+-- Create answer with passed arguments
+function policy.ANSWER(rtype, rdata, ttl)
+       return function(_, req)
+               local qry = req:current()
+               local answer = req.answer
+               ffi.C.kr_pkt_make_auth_header(answer)
+
+               if (rtype == qry.stype) then
+                       answer:rcode(kres.rcode.NOERROR)
+                       answer:begin(kres.section.ANSWER)
+                       answer:put(qry.sname, ttl, qry.sclass, rtype, rdata)
+                       return kres.DONE
+               end
+       end
+end
+
 local function mkauth_soa(answer, dname, mname)
        if mname == nil then
                mname = dname