aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apt-panopticon.lua
diff options
context:
space:
mode:
Diffstat (limited to 'apt-panopticon.lua')
-rwxr-xr-xapt-panopticon.lua37
1 files changed, 17 insertions, 20 deletions
diff --git a/apt-panopticon.lua b/apt-panopticon.lua
index 8543210..482a2ac 100755
--- a/apt-panopticon.lua
+++ b/apt-panopticon.lua
@@ -175,24 +175,21 @@ gatherIPs = function (host)
175 -- Takes about 30 seconds to look up the lot. 175 -- Takes about 30 seconds to look up the lot.
176 -- I tested using dig's -f option, it didn't seem much faster. 176 -- I tested using dig's -f option, it didn't seem much faster.
177 -- The sort -r assumes that deb.devuan.org is the first alphabetically. 177 -- The sort -r assumes that deb.devuan.org is the first alphabetically.
178 local dig = io.popen('dig +keepopen +noall +nottlid +answer ' .. host .. ' A ' .. host .. ' AAAA ' .. host .. ' CNAME ' .. host .. ' SRV | sort -r | uniq') 178 local dig = APT.readCmd('dig +keepopen +noall +nottlid +answer ' .. host .. ' A ' .. host .. ' AAAA ' .. host .. ' CNAME ' .. host .. ' SRV | sort -r | uniq')
179 repeat 179 for i,IPs in ipairs(dig) do
180 IPs = dig:read("*l") 180 for k, t, v in IPs:gmatch("([%w_%-%.]*)%.%s*IN%s*(%a*)%s*(.*)") do
181 if nil ~= IPs then 181 if "." == v:sub(-1, -1) then v = v:sub(1, -2) end
182 for k, t, v in IPs:gmatch("([%w_%-%.]*)%.%s*IN%s*(%a*)%s*(.*)") do 182 if nil == IP[k] then IP[k] = {} end
183 if "." == v:sub(-1, -1) then v = v:sub(1, -2) end 183 IP[k][v] = t
184 if nil == IP[k] then IP[k] = {} end 184 D(" DNS record " .. host .. " == " .. k .. " type " .. t .. " -> " .. v)
185 IP[k][v] = t 185 if t == "CNAME" then
186 D(" DNS record " .. host .. " == " .. k .. " type " .. t .. " -> " .. v) 186 gatherIPs(v)
187 if t == "CNAME" then 187 IP[k][v] = IP[v]
188 gatherIPs(v) 188 elseif v == "SRV" then
189 IP[k][v] = IP[v] 189 print("SVR record found, now what do we do?")
190 elseif v == "SRV" then
191 print("SVR record found, now what do we do?")
192 end
193 end 190 end
194 end 191 end
195 until nil == IPs 192 end
196 end 193 end
197 194
198 -- If this is the DNS-RR domain name, gather the IPs for the mirrors that mirror_list.txt says should be in it. 195 -- If this is the DNS-RR domain name, gather the IPs for the mirrors that mirror_list.txt says should be in it.
@@ -1179,8 +1176,8 @@ else
1179 local APT_args = APT.args 1176 local APT_args = APT.args
1180 local APT_logFile = APT.logFile 1177 local APT_logFile = APT.logFile
1181 local debians = {} 1178 local debians = {}
1182 local srvs = io.popen('ls -1 results/*.lua') 1179 local srvs = APT.readCmd('ls -1 results/*.lua')
1183 for l in srvs:lines() do 1180 for ii,l in ipairs(srvs) do
1184 local hst = l:sub(9, -5) 1181 local hst = l:sub(9, -5)
1185 if nil ~= l:find('_R%.lua') then hst = hst:sub(1, -3) end 1182 if nil ~= l:find('_R%.lua') then hst = hst:sub(1, -3) end
1186 if (hst:find('_') == nil) and (nil == APT.mirrors[hst]) then 1183 if (hst:find('_') == nil) and (nil == APT.mirrors[hst]) then
@@ -1197,8 +1194,8 @@ else
1197 end 1194 end
1198 end 1195 end
1199 end 1196 end
1200 local files = io.popen('ls -1 results/LOG_' .. hst .. '_*.html') 1197 local files = APT.readCmd('ls -1 results/LOG_' .. hst .. '_*.html')
1201 for ll in files:lines() do 1198 for iii,ll in ipairs(files) do
1202 local dn = false 1199 local dn = false
1203 for i, a in pairs(ips) do 1200 for i, a in pairs(ips) do
1204 if type(a) == 'table' then 1201 if type(a) == 'table' then