From: Denis Kadyshev Date: Mon, 13 Jan 2025 11:54:35 +0000 (+0700) Subject: Update dnsdist-resolver.lua X-Git-Tag: dnsdist-2.0.0-alpha1~168^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab5fabef3dfb39d3a7dad1a497fe5fa67a370e22;p=thirdparty%2Fpdns.git Update dnsdist-resolver.lua --- diff --git a/dockerdata/dnsdist-resolver.lua b/dockerdata/dnsdist-resolver.lua index 89e24b319e..f9bf8d1c3c 100644 --- a/dockerdata/dnsdist-resolver.lua +++ b/dockerdata/dnsdist-resolver.lua @@ -17,7 +17,15 @@ _M.verbose = false local ourservers = {} local ourcount = {} -local resolverpipe = io.popen('/usr/local/bin/dnsdist-resolver', 'w') +-- Global variable for store results for getAddressInfo() function +local resout = {} + +local function resolveCB(hostname, ips) + resout[hostname] = {} + for _, ip in ipairs(ips) do + table.insert(resout[hostname], ip:toString()) + end +end local function tablecopy(t) local t2 = {} @@ -71,22 +79,9 @@ local function setServer(name, ip) end function _M.maintenance() - -- TODO: only do this if the list has changed - -- TODO: check return values for k in pairs(_M.servers) do - resolverpipe:write(k .. ' ') + getAddressInfo(k, resolveCB) end - resolverpipe:write('\n') - resolverpipe:flush() - - -- TODO: maybe this failure should be quiet for the first X seconds? - local ret, resout = pcall(loadfile, '/tmp/dnsdist-resolver.out') - if not ret then - error(resout) - end - - -- on purpose no pcall, an error here is a bug - resout = resout() local activeservers = {} -- check for servers removed by controller