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 | 
