Files
FTL/test/pdns/luadns.lua

42 lines
1.4 KiB
Lua

refused_ede15 = newDN("refused.ede15.ftl")
nxdomain_ede15 = newDN("nxdomain.ede15.ftl")
null_ede15 = newDN("null.ede15.ftl")
-- this hook is called before doing any resolving
function preresolve(dq)
pdnslog("Got question for "..dq.qname:toString().." from "..dq.remoteaddr:toString().." to "..dq.localaddr:toString())
if dq.qname == refused_ede15 then
pdnslog("Blocking REFUSED + EDE 15 for "..dq.qname:toString())
-- Set EDE 15 in response
dq.extendedErrorCode = 15
-- Set REFUSED in response
dq.rcode = pdns.REFUSED
return true
end
if dq.qname == nxdomain_ede15 then
pdnslog("Blocking NXDOMAIN + EDE 15 for "..dq.qname:toString())
-- Set EDE 15 in response
dq.extendedErrorCode = 15
-- Set NXDOMAIN in response
dq.rcode = pdns.NXDOMAIN
return true
end
if dq.qname == null_ede15 then
pdnslog("Blocking NULL + EDE 15 for "..dq.qname:toString())
-- Set EDE 15 in response
dq.extendedErrorCode = 15
-- Add a NULL RR to the response
dq:addAnswer(pdns.A, "0.0.0.0")
dq:addAnswer(pdns.AAAA, "::")
return true
end
-- as we do not set dq.variable, our decision here will be cached
return false
end