]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
modules, docs: omit casting parameters of lua layers
authorVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 14 Mar 2019 10:00:13 +0000 (11:00 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 13 Jun 2019 13:03:15 +0000 (15:03 +0200)
Thanks to changes in this branch the functions are called with correctly
typed parameters already, so these weird casts can be deleted.

20 files changed:
daemon/README.rst
daemon/lua/sandbox.lua.in
lib/README.rst
modules/detect_time_skew/detect_time_skew.lua
modules/dns64/dns64.lua
modules/dns64/dns64.test.lua
modules/experimental_dot_auth/experimental_dot_auth.lua
modules/http/http_trace.lua
modules/policy/policy.lua
modules/predict/predict.lua
modules/priming/priming.lua
modules/rebinding/rebinding.lua
modules/renumber/renumber.lua
modules/serve_stale/serve_stale.lua
modules/ta_sentinel/ta_sentinel.lua
modules/ta_signal_query/ta_signal_query.lua
modules/ta_update/ta_update.lua
modules/view/view.lua
modules/workarounds/workarounds.lua
scripts/kresd-query.lua

index 0297f7387e0fa8514cb80e12b4e33d414b98db09..a9e968a19c329f0c7f5930384699a4ac8b4abf69 100644 (file)
@@ -348,9 +348,8 @@ Environment
 
       -- Query for AAAA record
       resolve('example.com', kres.type.AAAA, kres.class.IN, 0,
-      function (answer, req)
+      function (pkt, req)
          -- Check answer RCODE
-         local pkt = kres.pkt_t(answer)
          if pkt:rcode() == kres.rcode.NOERROR then
             -- Print matching records
             local records = pkt:section(kres.section.ANSWER)
index e2fe8eb79e0dfa1ade56824cda2a4661fbf8a76e..b4af911839689717c14898b9b4aa0f723e949fca 100644 (file)
@@ -43,7 +43,6 @@ worker.resolve_pkt = function (pkt, options, finish, init)
                finish_cb = ffi.cast('trace_callback_f',
                        function (req)
                                jit.off(true, true) -- JIT for (C -> lua)^2 nesting isn't allowed
-                       req = kres.request_t(req)
                                finish(req.answer, req)
                                finish_cb:free()
                        end)
index 077330fb1d6a7ec8b1b82e6d08bee7fe1c47b095..feaf69c12a652a65bcbd439aa679a9be3ec36252 100644 (file)
@@ -40,9 +40,7 @@ Layers can also change course of resolution, for example by appending additional
 .. code-block:: lua
 
        consume = function (state, req, answer)
-               answer = kres.pkt_t(answer)
                if answer:qtype() == kres.type.NS then
-                       req = kres.request_t(req)
                        local qry = req:push(answer:qname(), kres.type.SOA, kres.class.IN)
                        qry.flags.AWAIT_CUT = true
                end
@@ -54,13 +52,11 @@ This **doesn't** block currently processed query, and the newly created sub-requ
 .. code-block:: lua
 
        consume = function (state, req, answer)
-               answer = kres.pkt_t(answer)
                if state == kres.YIELD then
                        print('continuing yielded layer')
                        return kres.DONE
                else
                        if answer:qtype() == kres.type.NS then
-                               req = kres.request_t(req)
                                local qry = req:push(answer:qname(), kres.type.SOA, kres.class.IN)
                                qry.flags.AWAIT_CUT = true
                                print('planned SOA query, yielding')
@@ -200,7 +196,6 @@ First you need to convert it to a type known to FFI and check basic properties.
 .. code-block:: lua
 
        consume = function (state, req, pkt)
-               pkt = kres.pkt_t(answer)
                print('rcode:', pkt:rcode())
                print('query:', kres.dname2str(pkt:qname()), pkt:qclass(), pkt:qtype())
                if pkt:rcode() ~= kres.rcode.NOERROR then
@@ -245,7 +240,6 @@ You primarily need to retrieve currently processed query.
 .. code-block:: lua
 
        consume = function (state, req, pkt)
-               req = kres.request_t(req)
                print(req.options)
                print(req.state)
 
index 9f04c3e9237935c5632fc22ebfcf5dfe0d7c6691..c575273be5620a8040e884b4bdec52d57a25c5d6 100644 (file)
@@ -8,7 +8,6 @@ local event_id = nil
 -- Check time validity of RRSIGs in priming query
 -- luacheck: no unused args
 local function check_time_callback(pkt, req)
-       pkt = kres.pkt_t(pkt)
        if pkt:rcode() ~= kres.rcode.NOERROR then
                warn("[detect_time_skew] cannot resolve '.' NS")
                return nil
index 8e3eaa0fc1638e2850f84aae3e5eb244d5127a2f..0ee40e089b8d533cee65c43aca96f997b0635426 100644 (file)
@@ -27,8 +27,6 @@ end
 M.layer = { }
 function M.layer.consume(state, req, pkt)
        if state == kres.FAIL then return state end
-       pkt = kres.pkt_t(pkt)
-       req = kres.request_t(req)
        local qry = req:current()
        -- Observe only final answers in IN class where request has no CD flag.
        if M.proxy == nil or not qry.flags.RESOLVED
index 44c856c9c580d995bcb77e0b44a62dd8d6811d1b..e659f40b66f4cec696565ad210e9772379dd6e93 100644 (file)
@@ -15,7 +15,6 @@ local function wait_resolve(qname, qtype)
                name = qname,
                type = qtype,
                finish = function (answer, _)
-                       answer = kres.pkt_t(answer)
                        rcode = answer:rcode()
                        answers = answer:section(kres.section.ANSWER)
                        -- Signal as completed
index f5ab6be5ecf26ea75bb10a9fb15f62f2a3075b92..c3d71dfcbb1a8827fda4c3e207e9eec4c379b3ba 100644 (file)
@@ -69,9 +69,8 @@ end
 
 -- Handle DoT signalling NS domains.
 function M.layer.consume(state, _, pkt)
-       if state == kres.FAIL then return state end
        -- Only successful answers
-       pkt = kres.pkt_t(pkt)
+       if state == kres.FAIL then return state end
        -- log("%s", pkt:tostring())
        local authority = pkt:section(kres.section.AUTHORITY)
        local additional = pkt:section(kres.section.ADDITIONAL)
index 9e4d4667d7bb964fbae0b230f742c01fee738bd5..9164b41894a5518683091e75dc6a061700fa6f44 100644 (file)
@@ -60,7 +60,6 @@ local function serve_trace(h, _)
        local cond = condition.new()
        local waiting, done = false, false
        local finish_cb = ffi.cast('trace_callback_f', function (req)
-               req = kres.request_t(req)
                add_selected_records(answers, req.answ_selected)
                add_selected_records(authority, req.auth_selected)
                if waiting then
@@ -75,7 +74,6 @@ local function serve_trace(h, _)
                type = qtype,
                options = {'TRACE'},
                init = function (req)
-                       req = kres.request_t(req)
                        req.trace_log = buffer_log_cb
                        req.trace_finish = finish_cb
                end
@@ -106,4 +104,4 @@ return {
        endpoints = {
                ['/trace']   = {'text/plain', serve_trace},
        }
-}
\ No newline at end of file
+}
index b42b69d916505a65b89a39e778e6ede5e3bad0b0..2279a73451d8b25854d89dedec26c79022e36abb 100644 (file)
@@ -523,8 +523,6 @@ policy.layer = {
        begin = function(state, req)
                -- Don't act on "resolved" cases.
                if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
-
-               req = kres.request_t(req)
                return policy.evaluate(policy.rules, req, req:current(), state) or
                       policy.evaluate(policy.special_names, req, req:current(), state) or
                       state
@@ -532,8 +530,6 @@ policy.layer = {
        finish = function(state, req)
                -- Don't act on "resolved" cases.
                if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
-
-               req = kres.request_t(req)
                return policy.evaluate(policy.postrules, req, req:current(), state) or state
        end
 }
index 470700f3b2a3bc59421a01d691a46f19e35bc9c0..ca2e23945211c1ca1b25df41aee1c78960e4115b 100644 (file)
@@ -175,7 +175,6 @@ predict.layer = {
        -- Prefetch all expiring (sub-)queries immediately after the request finishes.
        -- Doing that immediately is simplest and avoids creating (new) large bursts of activity.
        finish = function (_, req)
-               req = kres.request_t(req)
                local qrys = req.rplan.resolved
                for i = 0, (tonumber(qrys.len) - 1) do -- size_t doesn't work for some reason
                        local qry = qrys.at[i]
index fed7b9b821bb7f1d8e308dc4e6869171b07dbbaa..4470a090f0ed855af080b862f929930e9346d86e 100644 (file)
@@ -41,8 +41,6 @@ end
 -- When all response is processed internal.nsset is published in resolver engine
 -- luacheck: no unused args
 local function address_callback(pkt, req)
-       pkt = kres.pkt_t(pkt)
-       -- req = kres.request_t(req)
        if pkt:rcode() ~= kres.rcode.NOERROR then
                warn("[priming] cannot resolve address '%s', type: %d", kres.dname2str(pkt:qname()), pkt:qtype())
        else
@@ -81,8 +79,6 @@ end
 -- These new queries should be resolved from cache.
 -- luacheck: no unused args
 local function priming_callback(pkt, req)
-       pkt = kres.pkt_t(pkt)
-       -- req = kres.request_t(req)
        if pkt:rcode() ~= kres.rcode.NOERROR then
                warn("[priming] cannot resolve '.' NS, next priming query in %d seconds", priming.retry_time / sec)
                internal.event = event.after(priming.retry_time, internal.prime)
index 1b1223c5a54d0704caef4654b27ee8e9592352b8..e7ef03493b97cb9f114bf017f1920ac197911da3 100644 (file)
@@ -90,12 +90,10 @@ function M.layer.consume(state, req, pkt)
        if state == kres.FAIL then
                return state end
 
-       req = kres.request_t(req)
        local qry = req:current()
        if qry.flags.CACHED then  -- do not slow down cached queries
                return state end
 
-       pkt = kres.pkt_t(pkt)
        local bad_rr = check_pkt(pkt)
        if not bad_rr then
                return state end
index ca77b9475b1ab3eb92fa449794794e44d2788f38..fd9e3b3a43ae2f71fe2584681466825ec35f9675 100644 (file)
@@ -64,8 +64,7 @@ end
 local function rule()
        return function (state, req)
                if state == kres.FAIL then return state end
-               req = kres.request_t(req)
-               local pkt = kres.pkt_t(req.answer)
+               local pkt = req.answer
                -- Only successful answers
                local records = pkt:section(kres.section.ANSWER)
                local ancount = #records
index cf19be1731155fe9182b2a091cf2db85a9b289a8..ad252ff305c74e73c987c433ec579cb30ad174db 100644 (file)
@@ -18,7 +18,6 @@ M.callback = ffi.cast("kr_stale_cb",
 
 M.layer = {
        produce = function (state, req)
-               req = kres.request_t(req)
                local qry = req:current()
                -- Don't do anything for priming, prefetching, etc.
                -- TODO: not all cases detected ATM.
index 4ee6348c911be072a26f1ddf8a324e24a1bf92e8..6a8a52ad1f22a4a89b01740fb76abb8908eeb26f 100644 (file)
@@ -3,17 +3,14 @@ M.layer = {}
 local ffi = require('ffi')
 
 function M.layer.finish(state, req, pkt)
-       local kreq = kres.request_t(req)
-
        if bit.band(state, kres.DONE) == 0 then
                return state end -- not resolved yet, exit
 
-       local qry = kreq:resolved()
+       local qry = req:resolved()
        if qry.parent ~= nil then
                return state end -- an internal query, exit
 
-       local kpkt = kres.pkt_t(pkt)
-       if not (kpkt:qtype() == kres.type.A or kpkt:qtype() == kres.type.AAAA) then
+       if not (pkt:qtype() == kres.type.A or pkt:qtype() == kres.type.AAAA) then
                return state end
 
        -- fast filter by the length of the first label
@@ -33,7 +30,7 @@ function M.layer.finish(state, req, pkt)
        end
        if not keytag then return state end
 
-       if kreq.rank ~= ffi.C.KR_RANK_SECURE or kreq.answer:cd() then
+       if req.rank ~= ffi.C.KR_RANK_SECURE or req.answer:cd() then
                if verbose() then
                        log('[ta_sentinel] name+type OK but not AD+CD conditions')
                end
@@ -78,9 +75,9 @@ function M.layer.finish(state, req, pkt)
        end
 
        if sentype ~= found then -- expected key is not there, or unexpected key is there
-               kpkt:clear_payload()
-               kpkt:rcode(kres.rcode.SERVFAIL)
-               kpkt:ad(false)
+               pkt:clear_payload()
+               pkt:rcode(kres.rcode.SERVFAIL)
+               pkt:ad(false)
        end
        return state -- do not break resolution process
 end
index 413015d5dc66d60e9b936a2e8b1f370b3c80fbd9..d1945c7e7e403efe7cd3d27957320b1b6d728d49 100644 (file)
@@ -51,7 +51,6 @@ end
 
 -- act on DNSKEY queries which were not answered from cache
 function M.layer.consume(state, req, _)
-       req = kres.request_t(req)
        local qry = req:current()
        if qry.stype == kres.type.DNSKEY and not qry.flags.CACHED then
                send_ta_query(qry:name())
index 4c0b47624fb188e4991407b423512f0d4cb30509..2f35d08b366ee2e231f278ea08c14d40a275574e 100644 (file)
@@ -237,7 +237,7 @@ local function refresh_plan(keyset, delay)
                resolve(owner_str, kres.type.DNSKEY, kres.class.IN, 'NO_CACHE',
                function (pkt)
                        -- Schedule itself with updated timeout
-                       local delay_new = active_refresh(keyset, kres.pkt_t(pkt))
+                       local delay_new = active_refresh(keyset, pkt)
                        delay_new = keyset.refresh_time or ta_update.refresh_time or delay_new
                        log('[ta_update] next refresh for ' .. owner_str .. ' in '
                                .. delay_new/hour .. ' hours')
index 41157eb8d42be2166d2d8e03c1ba025be0cc6db3..28b7d26b228f576fc268d1e48bbfdd04256655ff 100644 (file)
@@ -109,7 +109,6 @@ view.layer = {
                -- Don't act on "resolved" cases.
                if bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0 then return state end
 
-               req = kres.request_t(req)
                evaluate(state, req)
                return req.state
        end
index 97667821998ee1f490a8f3fef1e8515b1e650e71..4e3318c054e4dfd84ca06dcf4df1c13ede11ef6d 100644 (file)
@@ -22,7 +22,6 @@ end
 -- Just listing the *.in-addr.arpa suffixes would be tedious, as there are many.
 M.layer = {
        produce = function (state, req)
-               req = kres.request_t(req)
                local qry = req:current()
                if qry.stype ~= kres.type.PTR
                        or bit.band(state, bit.bor(kres.FAIL, kres.DONE)) ~= 0
index c2d54689408b886bbe834dd2e56f8319c4c42c13..cafaf7bf7bed86b62295a7c16dc720f556fbde88 100755 (executable)
@@ -10,8 +10,6 @@ option("ALWAYS_CUT", true)
 %s
 return resolve("%s", kres.type.%s, kres.class.%s, 0,
 function (pkt, req)
-       pkt = kres.pkt_t(pkt)
-       req = kres.request_t(req)
        local ok, err = pcall(function () %s end)
        if not ok then
                print(err)