return ren.rule(prefixes)
end
+-- Set and clear some query flags (TODO: documentation).
+local function flags(opts_set, opts_clear)
+ return function(state, req)
+ req = kres.request_t(req)
+ local qry = req:current()
+ qry.flags = bit.band(bit.bor(qry.flags, opts_set or 0), bit.bnot(opts_clear or 0))
+ return nil -- chain rule
+ end
+end
+
local policy = {
-- Policies
- PASS = 1, DENY = 2, DROP = 3, TC = 4, QTRACE = 5, FORWARD = forward, REROUTE = reroute, MIRROR = mirror,
+ PASS = 1, DENY = 2, DROP = 3, TC = 4, QTRACE = 5,
+ FORWARD = forward, REROUTE = reroute, MIRROR = mirror, FLAGS = flags,
-- Special values
ANY = 0,
}