Skip to content
Snippets Groups Projects

Rebinding fixes

Merged Tomas Krizek requested to merge rebinding-fixes into master
2 files
+ 17
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -95,7 +95,7 @@ function M.layer.consume(state, req, pkt)
return state end
local qry = req:current()
if qry.flags.CACHED then -- do not slow down cached queries
if qry.flags.CACHED or qry.flags.ALLOW_LOCAL then -- do not slow down cached queries
return state end
local bad_rr = check_pkt(pkt)
@@ -104,7 +104,14 @@ function M.layer.consume(state, req, pkt)
qry.flags.RESOLVED = 1 -- stop iteration
qry.flags.CACHED = 1 -- do not cache
refuse(req)
--[[ In case we're in a sub-query, we do not touch the final req answer.
Only this sub-query will get finished without a result - there we
rely on the iterator reacting to flags.RESOLVED
Typical example: NS address resolution -> only this NS won't be used
but others may still be OK (or we SERVFAIL due to no NS being usable).
--]]
if qry.parent == nil then refuse(req) end
if verbose() then
ffi.C.kr_log_qverbose_impl(qry, 'rebinding',
'blocking blacklisted IP in RR \'%s\' received from IP %s\n',
Loading