diff options
author | onefang | 2019-12-24 21:20:51 +1000 |
---|---|---|
committer | onefang | 2019-12-24 21:20:51 +1000 |
commit | b35794808bd93a3489565c3b9886a7c995463623 (patch) | |
tree | 0601e5daa671f73411835e31ee65e25ce8d3ee95 | |
parent | Refactor logging. (diff) | |
download | apt-panopticon-b35794808bd93a3489565c3b9886a7c995463623.zip apt-panopticon-b35794808bd93a3489565c3b9886a7c995463623.tar.gz apt-panopticon-b35794808bd93a3489565c3b9886a7c995463623.tar.bz2 apt-panopticon-b35794808bd93a3489565c3b9886a7c995463623.tar.xz |
Everyone gets a car, er I mean linky!
-rw-r--r-- | apt-panopticommon.lua | 13 | ||||
-rwxr-xr-x | apt-panopticon.lua | 39 |
2 files changed, 29 insertions, 23 deletions
diff --git a/apt-panopticommon.lua b/apt-panopticommon.lua index 54e2be1..ea6346e 100644 --- a/apt-panopticommon.lua +++ b/apt-panopticommon.lua | |||
@@ -317,13 +317,14 @@ APT.html = false | |||
317 | 317 | ||
318 | APT.logName = function(host, a2, a3) | 318 | APT.logName = function(host, a2, a3) |
319 | local name = host | 319 | local name = host |
320 | if nil ~= a2 then name = name .. "_" .. a2 end | 320 | if (nil ~= a2) and ('' ~= a2) then name = name .. "_" .. a2 end |
321 | if nil ~= a3 then name = name .. "_" .. a3 end | 321 | if (nil ~= a3) and ('' ~= a3) then name = name .. "_" .. a3 end |
322 | return 'results/LOG_' .. name .. '.html' | 322 | name = 'LOG_' .. name .. '.html' |
323 | return {'results/' .. name, '<a href="' .. name:gsub("/", "_") .. '">' .. name:gsub("/", "_") .. '</a>'} | ||
323 | end | 324 | end |
324 | 325 | ||
325 | APT.logOpen = function(host, a2, a3) | 326 | APT.logOpen = function(host, a2, a3) |
326 | local name = APT.logName(host, a2, a3) | 327 | local name = APT.logName(host, a2, a3)[1] |
327 | if APT.checkFile(name) then return false end | 328 | if APT.checkFile(name) then return false end |
328 | APT.logFile, e = io.open(name, "a+") | 329 | APT.logFile, e = io.open(name, "a+") |
329 | if nil == APT.logFile then C('opening log file (' .. name .. ') - ' .. e); return false end | 330 | if nil == APT.logFile then C('opening log file (' .. name .. ') - ' .. e); return false end |
@@ -422,7 +423,7 @@ APT.testing = function(t, host) | |||
422 | end | 423 | end |
423 | 424 | ||
424 | APT.execute = function (s) | 425 | APT.execute = function (s) |
425 | D(" executing <pre><code>" .. s .. "</code></pre>") | 426 | D(" executing - <code>" .. s .. "</code>") |
426 | --[[ Damn os.execute() | 427 | --[[ Damn os.execute() |
427 | Lua 5.1 says it returns "a status code, which is system-dependent" | 428 | Lua 5.1 says it returns "a status code, which is system-dependent" |
428 | Lua 5.2 says it returns true/nil, "exit"/"signal", the status code. | 429 | Lua 5.2 says it returns true/nil, "exit"/"signal", the status code. |
@@ -441,7 +442,7 @@ APT.execute = function (s) | |||
441 | end | 442 | end |
442 | 443 | ||
443 | APT.fork = function(s) | 444 | APT.fork = function(s) |
444 | D(" forking <pre><code>" .. s .. "</code></pre>") | 445 | D(" forking - <code>" .. s .. "</code>") |
445 | os.execute(s .. " &") | 446 | os.execute(s .. " &") |
446 | end | 447 | end |
447 | 448 | ||
diff --git a/apt-panopticon.lua b/apt-panopticon.lua index 649346a..13adead 100755 --- a/apt-panopticon.lua +++ b/apt-panopticon.lua | |||
@@ -377,7 +377,8 @@ checkHEAD = function (host, URL, r, retry, sanity) | |||
377 | if 'https' == pu.scheme then extraArgs = extraArgs .. ' --tests=-http' end | 377 | if 'https' == pu.scheme then extraArgs = extraArgs .. ' --tests=-http' end |
378 | if 'http' == pu.scheme then extraArgs = extraArgs .. ' --tests=-https' end | 378 | if 'http' == pu.scheme then extraArgs = extraArgs .. ' --tests=-https' end |
379 | I(" Now checking redirected host " .. u) | 379 | I(" Now checking redirected host " .. u) |
380 | APT.fork("ionice -c3 nice -n 19 " .. downloadLock .. "REDIR-" .. check .. ".log" .. " ./apt-panopticon.lua " .. extraArgs .. ' ' .. pu.host .. "/" .. path .. " " .. file) | 380 | APT.fork("ionice -c3 nice -n 19 " .. downloadLock .. "REDIR-" .. check .. ".log.txt" .. " ./apt-panopticon.lua " .. extraArgs .. ' ' .. pu.host .. "/" .. path .. " " .. file) |
381 | D('logging to ' .. APT.logName(pu.host, nil, file)[2]) | ||
381 | end | 382 | end |
382 | end | 383 | end |
383 | end | 384 | end |
@@ -451,6 +452,7 @@ checkHost = function (orig, host, path, ip, file) | |||
451 | if orig == host then | 452 | if orig == host then |
452 | D("checkHost " .. orig .. "" .. file) | 453 | D("checkHost " .. orig .. "" .. file) |
453 | APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " -o " .. orig .. path .. " " .. file) | 454 | APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " -o " .. orig .. path .. " " .. file) |
455 | D('logging to ' .. APT.logName(ph.host, nil, file)[2]) | ||
454 | else D("checkHost " .. orig .. " -> " .. host) end | 456 | else D("checkHost " .. orig .. " -> " .. host) end |
455 | end | 457 | end |
456 | end | 458 | end |
@@ -495,15 +497,16 @@ local download = "curl" .. | |||
495 | " --fail-early" .. | 497 | " --fail-early" .. |
496 | " --max-time " .. APT.options.maxtime.value .. | 498 | " --max-time " .. APT.options.maxtime.value .. |
497 | " --retry " .. APT.options.retries.value .. | 499 | " --retry " .. APT.options.retries.value .. |
498 | " -R -v -z 'results/stamp.old' " | 500 | " -R -v -z 'results/stamp.old' --stderr results/" |
499 | local downloads = function(host, URL, meta, release, list) | 501 | local downloads = function(host, URL, meta, release, list) |
500 | if nil == URL then URL = "" end | 502 | if nil == URL then URL = "" end |
501 | local lock = meta .. "-" .. host .. ".log" | 503 | local files = 'curl-' .. meta .. '-' .. host .. '.files.txt' |
502 | local log = " --stderr results/curl-" .. meta .. "-" .. host .. ".log" | 504 | local lock = meta .. "-" .. host .. ".log.txt" |
503 | local cm = "ionice -c3 nice -n 19 " .. downloadLock .. lock .. " " .. download .. log .. " -K results/curl-" .. meta .. '-' .. host .. ".files" | 505 | local log = "curl-" .. meta .. "-" .. host .. ".log.txt" |
506 | local cm = "ionice -c3 nice -n 19 " .. downloadLock .. lock .. " " .. download .. log .. " -K results/" .. files | ||
504 | if APT.testing("IPv4") and (not APT.testing("IPv6")) then cm = cm .. ' -4' end | 507 | if APT.testing("IPv4") and (not APT.testing("IPv6")) then cm = cm .. ' -4' end |
505 | if (not APT.testing("IPv4")) and APT.testing("IPv6") then cm = cm .. ' -6' end | 508 | if (not APT.testing("IPv4")) and APT.testing("IPv6") then cm = cm .. ' -6' end |
506 | f, e = io.open("results/curl-" .. meta .. '-' .. host .. ".files", "a+") | 509 | f, e = io.open("results/curl-" .. meta .. '-' .. host .. ".files.txt", "a+") |
507 | if nil == f then C("opening curl downloads list file - " .. e); return end | 510 | if nil == f then C("opening curl downloads list file - " .. e); return end |
508 | 511 | ||
509 | if nil ~= list then | 512 | if nil ~= list then |
@@ -531,6 +534,7 @@ local downloads = function(host, URL, meta, release, list) | |||
531 | end | 534 | end |
532 | f:close() | 535 | f:close() |
533 | APT.fork(cm) | 536 | APT.fork(cm) |
537 | D('logging to <a href="' .. log .. '">' .. log .. '</a>, with <a href="' .. files .. '">these files</a>') | ||
534 | end | 538 | end |
535 | 539 | ||
536 | 540 | ||
@@ -847,16 +851,16 @@ drwxr-x--- 2 www-data www-data 4096 2019-12-23 01:02:57.000000000 +1000 aptly | |||
847 | 851 | ||
848 | ]] | 852 | ]] |
849 | os.execute('sleep 1') -- Wait for things to start up before checking for them. | 853 | os.execute('sleep 1') -- Wait for things to start up before checking for them. |
850 | while 0 < APT.checkExes(downloadLock .. list.out .. "-" .. host .. ".log") do | 854 | while 0 < APT.checkExes(downloadLock .. list.out .. "-" .. host .. ".log.txt") do |
851 | D('*<* About to yield coroutine while waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log') | 855 | D('*<* About to yield coroutine while waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log.txt') |
852 | coroutine.yield() | 856 | coroutine.yield() |
853 | D('*>* Resumed coroutine while waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log') | 857 | D('*>* Resumed coroutine while waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log.txt') |
854 | end | 858 | end |
855 | D('*>* Resumed coroutine NO LONGER waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log') | 859 | D('*>* Resumed coroutine NO LONGER waiting on - 0 < APT.checkExes(' .. downloadLock .. list.out .. '-' .. host .. '.log.txt') |
856 | 860 | ||
857 | local min, max, spd = 999999999999, 0 | 861 | local min, max, spd = 999999999999, 0 |
858 | if APT.checkFile("results/curl-" .. list.out .. "-" .. host .. ".log") then | 862 | if APT.checkFile("results/curl-" .. list.out .. "-" .. host .. ".log.txt") then |
859 | for l in io.lines("results/curl-" .. list.out .. "-" .. host .. ".log") do | 863 | for l in io.lines("results/curl-" .. list.out .. "-" .. host .. ".log.txt") do |
860 | local speed, crrnt = l:match('^%c *%d+ +%d+k? +%d+ +%d+k? +%d+ +%d+ +(%d+k?) +%d+ +[%d%-]+:[%d%-]+:[%d%-]+ +[%d%-]+:[%d%-]+:[%d%-]+ +[%d%-]+:[%d%-]+:[%d%-]+ +(%d+k?)') | 864 | local speed, crrnt = l:match('^%c *%d+ +%d+k? +%d+ +%d+k? +%d+ +%d+ +(%d+k?) +%d+ +[%d%-]+:[%d%-]+:[%d%-]+ +[%d%-]+:[%d%-]+:[%d%-]+ +[%d%-]+:[%d%-]+:[%d%-]+ +(%d+k?)') |
861 | if nil ~= speed then | 865 | if nil ~= speed then |
862 | if 'k' == speed:sub(-1, -1) then speed = speed:sub(1, -2) .. '000' end | 866 | if 'k' == speed:sub(-1, -1) then speed = speed:sub(1, -2) .. '000' end |
@@ -869,7 +873,7 @@ os.execute('sleep 1') -- Wait for things to start up before checking for them. | |||
869 | if crrnt > max then max = crrnt end | 873 | if crrnt > max then max = crrnt end |
870 | end | 874 | end |
871 | if l:find('timed out') ~= nil then | 875 | if l:find('timed out') ~= nil then |
872 | E(" TIMEOUT " .. timeouts + 1 .. ', details in curl-' .. list.out .. '-' .. host .. '.log', 'http', '', host) | 876 | E(" TIMEOUT " .. timeouts + 1 .. ', details in <a href="curl-' .. list.out .. '-' .. host .. '.log.txt">curl-' .. list.out .. '-' .. host .. '.log.txt</a>', 'http', '', host) |
873 | timeouts = timeouts + 1 | 877 | timeouts = timeouts + 1 |
874 | APT.results["timeout"] = true | 878 | APT.results["timeout"] = true |
875 | end | 879 | end |
@@ -943,6 +947,7 @@ if 0 < #arg then | |||
943 | elseif v1 == "AAAA" then | 947 | elseif v1 == "AAAA" then |
944 | if APT.testing("IPv6") then APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " " .. pu.host .. path .. " " .. k1 .. " " .. file) end | 948 | if APT.testing("IPv6") then APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " " .. pu.host .. path .. " " .. k1 .. " " .. file) end |
945 | end | 949 | end |
950 | D('logging to ' .. APT.logName(pu.host, k1, file)[2]) | ||
946 | end | 951 | end |
947 | else | 952 | else |
948 | if v == "A" then | 953 | if v == "A" then |
@@ -950,6 +955,7 @@ if 0 < #arg then | |||
950 | elseif v == "AAAA" then | 955 | elseif v == "AAAA" then |
951 | if APT.testing("IPv6") then APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " " .. pu.host .. path .. " " .. k .. " " .. file) end | 956 | if APT.testing("IPv6") then APT.fork("ionice -c3 ./apt-panopticon.lua " .. sendArgs .. " " .. pu.host .. path .. " " .. k .. " " .. file) end |
952 | end | 957 | end |
958 | D('logging to ' .. APT.logName(pu.host, k, file)[2]) | ||
953 | end | 959 | end |
954 | end | 960 | end |
955 | end | 961 | end |
@@ -990,9 +996,9 @@ if 0 < #arg then | |||
990 | 996 | ||
991 | if APT.origin and APT.options.referenceSite.value ~= pu.host then | 997 | if APT.origin and APT.options.referenceSite.value ~= pu.host then |
992 | os.execute('sleep 1') -- Wait for things to start up before checking for them. | 998 | os.execute('sleep 1') -- Wait for things to start up before checking for them. |
993 | while 0 < APT.checkExes(downloadLock .. "Release-" .. pu.host .. ".log") do os.execute("sleep 10") end | 999 | while 0 < APT.checkExes(downloadLock .. "Release-" .. pu.host .. ".log.txt") do os.execute("sleep 10") end |
994 | while 0 < APT.checkExes(downloadLock .. "Packages-" .. pu.host .. ".log") do os.execute("sleep 10") end | 1000 | while 0 < APT.checkExes(downloadLock .. "Packages-" .. pu.host .. ".log.txt") do os.execute("sleep 10") end |
995 | while 0 < APT.checkExes(downloadLock .. "package-" .. pu.host .. ".log") do os.execute("sleep 10") end | 1001 | while 0 < APT.checkExes(downloadLock .. "package-" .. pu.host .. ".log.txt") do os.execute("sleep 10") end |
996 | os.execute("sleep 5") | 1002 | os.execute("sleep 5") |
997 | if not APT.keep then os.execute("rm -fr results/" .. pu.host .. " 2>/dev/null") end | 1003 | if not APT.keep then os.execute("rm -fr results/" .. pu.host .. " 2>/dev/null") end |
998 | os.execute('rm results/STATUS_' .. pu.host .. '_* 2>/dev/null') | 1004 | os.execute('rm results/STATUS_' .. pu.host .. '_* 2>/dev/null') |
@@ -1012,7 +1018,6 @@ else | |||
1012 | if nil ~= dt then os.execute('mkdir -p results_' .. dt .. '; rm -f results; ln -s results_' .. dt .. ' results 2>/dev/null') end | 1018 | if nil ~= dt then os.execute('mkdir -p results_' .. dt .. '; rm -f results; ln -s results_' .. dt .. ' results 2>/dev/null') end |
1013 | os.execute('if [ -f results/stamp ]; then mv results/stamp results/stamp.old; else touch results/stamp.old -t 199901010000; fi; touch results/stamp') | 1019 | os.execute('if [ -f results/stamp ]; then mv results/stamp results/stamp.old; else touch results/stamp.old -t 199901010000; fi; touch results/stamp') |
1014 | if not APT.keep then | 1020 | if not APT.keep then |
1015 | os.execute("rm -f results/*.log 2>/dev/null") | ||
1016 | os.execute("rm -f results/*.html 2>/dev/null") | 1021 | os.execute("rm -f results/*.html 2>/dev/null") |
1017 | os.execute("rm -f results/*.txt 2>/dev/null") | 1022 | os.execute("rm -f results/*.txt 2>/dev/null") |
1018 | end | 1023 | end |