diff options
author | onefang | 2019-12-25 18:47:55 +1000 |
---|---|---|
committer | onefang | 2019-12-25 18:47:55 +1000 |
commit | 0f43ca83d630264e42f7875bc6af1d77125b5ebe (patch) | |
tree | b09908a42b1508b220181f99aeda865c7371b238 /apt-panopticommon.lua | |
parent | Missed a return false from logOpen() (diff) | |
download | apt-panopticon-0f43ca83d630264e42f7875bc6af1d77125b5ebe.zip apt-panopticon-0f43ca83d630264e42f7875bc6af1d77125b5ebe.tar.gz apt-panopticon-0f43ca83d630264e42f7875bc6af1d77125b5ebe.tar.bz2 apt-panopticon-0f43ca83d630264e42f7875bc6af1d77125b5ebe.tar.xz |
Track, store, and report info from the hosts that get redirected to.
Diffstat (limited to 'apt-panopticommon.lua')
-rw-r--r-- | apt-panopticommon.lua | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/apt-panopticommon.lua b/apt-panopticommon.lua index e73e69e..37b43e4 100644 --- a/apt-panopticommon.lua +++ b/apt-panopticommon.lua | |||
@@ -53,7 +53,7 @@ APT.options = | |||
53 | "DNSRR", | 53 | "DNSRR", |
54 | "Protocol", | 54 | "Protocol", |
55 | "URLSanity", | 55 | "URLSanity", |
56 | "Integrity", | 56 | -- "Integrity", |
57 | "Updated", | 57 | "Updated", |
58 | }, | 58 | }, |
59 | }, | 59 | }, |
@@ -411,6 +411,7 @@ local E = APT.E | |||
411 | local C = APT.C | 411 | local C = APT.C |
412 | 412 | ||
413 | 413 | ||
414 | APT.debians = {} | ||
414 | APT.mirrors = {} | 415 | APT.mirrors = {} |
415 | 416 | ||
416 | APT.testing = function(t, host) | 417 | APT.testing = function(t, host) |
@@ -498,6 +499,7 @@ APT.padResults = function(results) | |||
498 | if nil == tests.Integrity then tests.Integrity = {errors = c; warnings = c; timeouts = c} end | 499 | if nil == tests.Integrity then tests.Integrity = {errors = c; warnings = c; timeouts = c} end |
499 | if nil == tests.Protocol then tests.Protocol = {errors = c; warnings = c; timeouts = c} end | 500 | if nil == tests.Protocol then tests.Protocol = {errors = c; warnings = c; timeouts = c} end |
500 | if nil == tests.Updated then tests.Updated = {errors = c; warnings = c; timeouts = c} end | 501 | if nil == tests.Updated then tests.Updated = {errors = c; warnings = c; timeouts = c} end |
502 | if nil == tests.redirects then tests.redirects = {} end | ||
501 | if nil == tests.URLSanity then tests.URLSanity = {errors = c; warnings = c; timeouts = c} end | 503 | if nil == tests.URLSanity then tests.URLSanity = {errors = c; warnings = c; timeouts = c} end |
502 | results[v] = tests | 504 | results[v] = tests |
503 | end | 505 | end |
@@ -517,23 +519,25 @@ APT.collate = function(l, host, ip, results) | |||
517 | if ("speed" == k) and (nil ~= results.speed) then | 519 | if ("speed" == k) and (nil ~= results.speed) then |
518 | if v.min < results.speed.min then results.speed.min = v.min end | 520 | if v.min < results.speed.min then results.speed.min = v.min end |
519 | if v.max > results.speed.max then results.speed.max = v.max end | 521 | if v.max > results.speed.max then results.speed.max = v.max end |
520 | else | 522 | elseif 'IPs' ~= k then |
521 | for i, u in pairs(v) do | 523 | for i, u in pairs(v) do |
522 | if "table" == type(u) then | 524 | if 'redirects' ~= i then |
523 | for h, t in pairs(u) do | 525 | if "table" == type(u) then |
526 | for h, t in pairs(u) do | ||
527 | local a = results[k] | ||
528 | if nil == a then results[k] = {i = {}}; a = results[k] end | ||
529 | a = a[i] | ||
530 | if nil == a then results[k][i] = {h = {}}; a = results[k][i] end | ||
531 | a = a[h] | ||
532 | if nil == a then a = 0 end | ||
533 | results[k][i][h] = a + t | ||
534 | end | ||
535 | else | ||
524 | local a = results[k] | 536 | local a = results[k] |
525 | if nil == a then results[k] = {i = {}}; a = results[k] end | 537 | if nil == a then a = 0; results[k] = {} else a = a[i] end |
526 | a = a[i] | ||
527 | if nil == a then results[k][i] = {h = {}}; a = results[k][i] end | ||
528 | a = a[h] | ||
529 | if nil == a then a = 0 end | 538 | if nil == a then a = 0 end |
530 | results[k][i][h] = a + t | 539 | results[k][i] = a + u |
531 | end | 540 | end |
532 | else | ||
533 | local a = results[k] | ||
534 | if nil == a then a = 0; results[k] = {} else a = a[i] end | ||
535 | if nil == a then a = 0 end | ||
536 | results[k][i] = a + u | ||
537 | end | 541 | end |
538 | end | 542 | end |
539 | end | 543 | end |
@@ -546,14 +550,14 @@ APT.collate = function(l, host, ip, results) | |||
546 | end | 550 | end |
547 | return results | 551 | return results |
548 | end | 552 | end |
549 | APT.collateAll = function(l, host, func) | 553 | APT.collateAll = function(hosts, l, host, func) |
550 | results = {} | 554 | results = {} |
551 | local f = l .. "/" .. host .. ".lua" | 555 | local f = l .. "/" .. host .. ".lua" |
552 | if APT.checkFile(f) then | 556 | if APT.checkFile(f) then |
553 | results = loadfile(f)() | 557 | results = loadfile(f)() |
554 | results = APT.padResults(results) | 558 | results = APT.padResults(results) |
555 | if nil ~= func then func(results) end | 559 | if nil ~= func then func(results) end |
556 | local v = APT.mirrors[host] | 560 | local v = hosts[host] |
557 | if nil ~= v then | 561 | if nil ~= v then |
558 | local IPs = results.IPs | 562 | local IPs = results.IPs |
559 | if nil == IPs then W('No IPs for ' .. host .. ' in ' .. l) else | 563 | if nil == IPs then W('No IPs for ' .. host .. ' in ' .. l) else |
@@ -662,7 +666,7 @@ APT.updateRRD = function(results, host, ip) | |||
662 | end | 666 | end |
663 | 667 | ||
664 | APT.doRRD = function(l, k, v, o) | 668 | APT.doRRD = function(l, k, v, o) |
665 | APT.collateAll(l, k, | 669 | APT.collateAll(APT.mirrors, l, k, |
666 | function(results, ip) | 670 | function(results, ip) |
667 | APT.createRRD(k, ip, o) | 671 | APT.createRRD(k, ip, o) |
668 | APT.updateRRD(results, k, ip) | 672 | APT.updateRRD(results, k, ip) |