diff options
-rwxr-xr-x | apt-panopticon-report-email-web.lua | 42 | ||||
-rwxr-xr-x | apt-panopticon.lua | 18 |
2 files changed, 37 insertions, 23 deletions
diff --git a/apt-panopticon-report-email-web.lua b/apt-panopticon-report-email-web.lua index b8b487e..a9852c1 100755 --- a/apt-panopticon-report-email-web.lua +++ b/apt-panopticon-report-email-web.lua | |||
@@ -346,28 +346,32 @@ local makeIPlist = function(hosts) | |||
346 | if nil ~= hosts[k].IPs then | 346 | if nil ~= hosts[k].IPs then |
347 | for l, w in pairs(hosts[k].IPs) do | 347 | for l, w in pairs(hosts[k].IPs) do |
348 | if type(w) == "table" then | 348 | if type(w) == "table" then |
349 | n[l] = {} | 349 | -- TODO - don't hard code deb.roundr.devuan.org. |
350 | for i, u in pairs(w) do | 350 | -- Don't output the extra DNS-RR entries that are for admin reasons. |
351 | if (APT.testing("IPv6") and ("AAAA" == u)) or ("A" == u) then | 351 | if ((APT.options.roundRobin.value == k) and ("deb.roundr.devuan.org" == l)) or (APT.options.roundRobin.value ~= k) then |
352 | local inRR = "" | 352 | n[l] = {} |
353 | local lc = logCount(k, i) | 353 | for i, u in pairs(w) do |
354 | if checkRR then | 354 | if (APT.testing("IPv6") and ("AAAA" == u)) or ("A" == u) then |
355 | -- If there where errors, warnings, or timeouts, then it'll have that wrapped in font tags. | 355 | local inRR = "" |
356 | inRR = "<font color='green'><b>✅</b></font>" | 356 | local lc = logCount(k, i) |
357 | if nil ~= lc:find("<font color='") then | 357 | if checkRR then |
358 | inRR = "<font color='red'>❌</font>" | 358 | -- If there where errors, warnings, or timeouts, then it'll have that wrapped in font tags. |
359 | if nil ~= RRbfile then | 359 | inRR = "<font color='green'><b>✅</b></font>" |
360 | local f, e = RRbfile:write(i, '\n') | 360 | if nil ~= lc:find("<font color='") then |
361 | if f == nil then C("writing DNS-RR_bad.txt file - " .. e) end | 361 | inRR = "<font color='red'>❌</font>" |
362 | if nil ~= RRbfile then | ||
363 | local f, e = RRbfile:write(i, '\n') | ||
364 | if f == nil then C("writing DNS-RR_bad.txt file - " .. e) end | ||
365 | end | ||
366 | elseif nil ~= RRgfile then | ||
367 | local f, e = RRgfile:write(i, '\n') | ||
368 | if f == nil then C("writing DNS-RR_good.txt file - " .. e) end | ||
362 | end | 369 | end |
363 | elseif nil ~= RRgfile then | ||
364 | local f, e = RRgfile:write(i, '\n') | ||
365 | if f == nil then C("writing DNS-RR_good.txt file - " .. e) end | ||
366 | end | 370 | end |
371 | if "yes" ~= hosts[k].DNSRR then inRR = "" end | ||
372 | local log = '[<a href="' .. adr .. k .. '_' .. i .. '">graphs</a>] ' | ||
373 | if "" == log then n[l][i] = u else n[l][log .. inRR .. ' ' .. revDNS(hosts, k, i) .. ' ' .. lc] = u end | ||
367 | end | 374 | end |
368 | if "yes" ~= hosts[k].DNSRR then inRR = "" end | ||
369 | local log = '[<a href="' .. adr .. k .. '_' .. i .. '">graphs</a>] ' | ||
370 | if "" == log then n[l][i] = u else n[l][log .. inRR .. ' ' .. revDNS(hosts, k, i) .. ' ' .. lc] = u end | ||
371 | end | 375 | end |
372 | end | 376 | end |
373 | else | 377 | else |
diff --git a/apt-panopticon.lua b/apt-panopticon.lua index f154086..b91d47c 100755 --- a/apt-panopticon.lua +++ b/apt-panopticon.lua | |||
@@ -195,6 +195,16 @@ gatherIPs = function (host) | |||
195 | end | 195 | end |
196 | until nil == IPs | 196 | until nil == IPs |
197 | end | 197 | end |
198 | |||
199 | -- If this is the DNS-RR domain name, gather the IPs for the mirrors that mirror_list.txt says should be in it. | ||
200 | if host == APT.options.roundRobin.value then | ||
201 | for k, m in pairs(APT.mirrors) do | ||
202 | if "yes" == m.DNSRR then | ||
203 | gatherIPs(m.FQDN) | ||
204 | IP[host][m.FQDN] = IP[m.FQDN] | ||
205 | end | ||
206 | end | ||
207 | end | ||
198 | return IP[host] | 208 | return IP[host] |
199 | end | 209 | end |
200 | 210 | ||
@@ -620,7 +630,7 @@ local getMirrors = function () | |||
620 | W("Mirror " .. host .. " is not active - " .. d, "", "", host) | 630 | W("Mirror " .. host .. " is not active - " .. d, "", "", host) |
621 | active = false | 631 | active = false |
622 | m[t] = d | 632 | m[t] = d |
623 | -- TODO - Should do some input validation on BaseURL, and everything else. | 633 | -- TODO - Should do some more input validation on everything. |
624 | elseif "Rate" == t then | 634 | elseif "Rate" == t then |
625 | local time, unit = d:match('(%d+) *(%a+)') | 635 | local time, unit = d:match('(%d+) *(%a+)') |
626 | time = tonumber(time) | 636 | time = tonumber(time) |
@@ -643,7 +653,7 @@ local getMirrors = function () | |||
643 | end | 653 | end |
644 | end | 654 | end |
645 | if APT.testing("DNSRR") then | 655 | if APT.testing("DNSRR") then |
646 | mirrors[APT.options.roundRobin.value] = { ["Protocols"] = { ["http"] = true; }; ['Updated'] = 300; | 656 | mirrors[APT.options.roundRobin.value] = { ["Protocols"] = { ["http"] = true; }; ['Updated'] = 300; ['DNSRR'] = false; |
647 | ["FQDN"] = APT.options.roundRobin.value; ["Active"] = 'yes'; ["BaseURL"] = APT.options.roundRobin.value; } | 657 | ["FQDN"] = APT.options.roundRobin.value; ["Active"] = 'yes'; ["BaseURL"] = APT.options.roundRobin.value; } |
648 | end | 658 | end |
649 | local file, e = io.open("results/mirrors.lua", "w+") | 659 | local file, e = io.open("results/mirrors.lua", "w+") |
@@ -1042,11 +1052,11 @@ if 0 < #arg then | |||
1042 | 1052 | ||
1043 | if not APT.logOpen(pu.host, arg[2], arg[3]) then return end | 1053 | if not APT.logOpen(pu.host, arg[2], arg[3]) then return end |
1044 | I("Starting tests for " .. arg[1] .. " with these tests - " .. table.concat(APT.options.tests.value, ", ")) | 1054 | I("Starting tests for " .. arg[1] .. " with these tests - " .. table.concat(APT.options.tests.value, ", ")) |
1055 | APT.mirrors = loadfile("results/mirrors.lua")() | ||
1056 | APT.results = APT.padResults(APT.results) | ||
1045 | if APT.origin or APT.redir then APT.results["IPs"] = gatherIPs(pu.host) end | 1057 | if APT.origin or APT.redir then APT.results["IPs"] = gatherIPs(pu.host) end |
1046 | if nil ~= arg[2] then I(" Using IP " .. arg[2]); ip = arg[2] end | 1058 | if nil ~= arg[2] then I(" Using IP " .. arg[2]); ip = arg[2] end |
1047 | if nil ~= arg[3] then I(" Using file " .. arg[3]); end | 1059 | if nil ~= arg[3] then I(" Using file " .. arg[3]); end |
1048 | APT.mirrors = loadfile("results/mirrors.lua")() | ||
1049 | APT.results = APT.padResults(APT.results) | ||
1050 | 1060 | ||
1051 | if APT.origin then | 1061 | if APT.origin then |
1052 | local file = arg[3] | 1062 | local file = arg[3] |