Bugfixes
--------
- correctly use EDNS(0) padding in failed answers (!921)
-- policy and daf modules: fix reroute rules (!901)
+- policy and daf modules: fix postrules and reroute rules (!901)
- renumber module: don't accidentally zero-out request's .state (!901)
-- as a dependency chain, e.g. r1,r2,r3 -> r3(r2(r1(state)))
policy.layer = {
begin = function(state, req)
- -- Don't act on "resolved" cases.
+ -- Don't act on "finished" cases.
if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
local qry = req:current()
return policy.evaluate(policy.rules, req, qry, state)
finish = function(state, req)
-- Optimization for the typical case
if #policy.postrules == 0 then return state end
- -- Don't act on "resolved" cases.
- if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
+ -- Don't act on failed cases.
+ if bit.band(state, kres.FAIL) ~= 0 then return state end
return policy.evaluate(policy.postrules, req, req:current(), state) or state
end
}
-- @function Module layers
view.layer = {
begin = function(state, req)
- -- Don't act on "resolved" cases.
+ -- Don't act on "finished" cases.
if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
evaluate(state, req)