diff options
Diffstat (limited to '')
-rwxr-xr-x | apt-panopticon.lua | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/apt-panopticon.lua b/apt-panopticon.lua index f166819..d8ee95b 100755 --- a/apt-panopticon.lua +++ b/apt-panopticon.lua | |||
@@ -290,6 +290,11 @@ checkHEAD = function (host, URL, r, retry, sanity) | |||
290 | IP .. ' ' .. '-o /dev/null -D results/"HEADERS_' .. fname .. '" ' .. | 290 | IP .. ' ' .. '-o /dev/null -D results/"HEADERS_' .. fname .. '" ' .. |
291 | hdr .. ' -w "#%{http_code} %{ssl_verify_result} %{url_effective}\\n" ' .. PU.scheme .. '://' .. host .. PU.path .. ' >>results/"STATUS_' .. fname .. '"' | 291 | hdr .. ' -w "#%{http_code} %{ssl_verify_result} %{url_effective}\\n" ' .. PU.scheme .. '://' .. host .. PU.path .. ' >>results/"STATUS_' .. fname .. '"' |
292 | ):Nice():log():Do().status | 292 | ):Nice():log():Do().status |
293 | if 0 < r then | ||
294 | APT.tested(PU.scheme, 'Redirects', host) | ||
295 | else | ||
296 | APT.tested(PU.scheme, '', host) | ||
297 | end | ||
293 | local code = "???" | 298 | local code = "???" |
294 | local cstr = "" | 299 | local cstr = "" |
295 | local location = nil | 300 | local location = nil |
@@ -359,14 +364,15 @@ checkHEAD = function (host, URL, r, retry, sanity) | |||
359 | if (pu.host == APT.options.roundRobin.value) and (nil ~= PU.path:find('merged/pool/DEVUAN/')) then | 364 | if (pu.host == APT.options.roundRobin.value) and (nil ~= PU.path:find('merged/pool/DEVUAN/')) then |
360 | E('DEVUAN packages must not be redirected to ' .. APT.options.roundRobin.value .. ' - ' .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, 'Redirects', host) | 365 | E('DEVUAN packages must not be redirected to ' .. APT.options.roundRobin.value .. ' - ' .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, 'Redirects', host) |
361 | end | 366 | end |
362 | if ('http' == location:sub(1, 4)) and (pu.scheme ~= PU.scheme) then -- Sometimes a location sans scheme is returned, this is not a protocol change. | 367 | if APT.testing("Protocol") then |
363 | if APT.testing("Protocol") then | 368 | if ('http' == location:sub(1, 4)) and (pu.scheme ~= PU.scheme) then -- Sometimes a location sans scheme is returned, this is not a protocol change. |
364 | if APT.options.roundRobin.value == host then -- Coz HTTPS shouldn't happen via the round robin. | 369 | if APT.options.roundRobin.value == host then -- Coz HTTPS shouldn't happen via the round robin. |
365 | E(spcd .. spcd .. "Protocol changed during redirect! " .. check .. " " .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, "Protocol", host) | 370 | E(spcd .. spcd .. "Protocol changed during redirect! " .. check .. " " .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, "Protocol", host) |
366 | end | 371 | end |
367 | W(spcd .. spcd .. "Protocol changed during redirect! " .. check .. " " .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, "Protocol", host) | 372 | W(spcd .. spcd .. "Protocol changed during redirect! " .. check .. " " .. APT.lnk(URL) .. arw .. APT.lnk(location), PU.scheme, "Protocol", host) |
368 | else | 373 | else |
369 | end | 374 | end |
375 | APT.tested(PU.scheme, 'Protocol', host) | ||
370 | end | 376 | end |
371 | 377 | ||
372 | if location == URL then | 378 | if location == URL then |
@@ -402,6 +408,7 @@ checkHEAD = function (host, URL, r, retry, sanity) | |||
402 | I(spcd .. spcd .. "Now checking redirected host " .. u .. ' for ' .. APT.lnk(URL) .. arw .. APT.lnk(location), host) | 408 | I(spcd .. spcd .. "Now checking redirected host " .. u .. ' for ' .. APT.lnk(URL) .. arw .. APT.lnk(location), host) |
403 | APT.exe(downloadLock .. "REDIR-" .. check .. ".log.txt" .. " ./apt-panopticon.lua " .. extraArgs .. ' ' .. pu.host .. "/" .. path .. " " .. file):Nice():log():fork() | 409 | APT.exe(downloadLock .. "REDIR-" .. check .. ".log.txt" .. " ./apt-panopticon.lua " .. extraArgs .. ' ' .. pu.host .. "/" .. path .. " " .. file):Nice():log():fork() |
404 | D(spcd .. 'logging to ' .. APT.logName(pu.host, nil, file)[2]) | 410 | D(spcd .. 'logging to ' .. APT.logName(pu.host, nil, file)[2]) |
411 | APT.tested(PU.scheme, 'Redirects', host) | ||
405 | end | 412 | end |
406 | end | 413 | end |
407 | elseif nil ~= PU.path:find('merged/pool/DEBIAN-SECURITY/') then | 414 | elseif nil ~= PU.path:find('merged/pool/DEBIAN-SECURITY/') then |
@@ -417,6 +424,7 @@ local checkTimeouts = function(host, scheme, URL) | |||
417 | URL = URL:gsub("/", "///") | 424 | URL = URL:gsub("/", "///") |
418 | URL = URL:gsub("///", "/", 1) | 425 | URL = URL:gsub("///", "/", 1) |
419 | checkHEAD(host, scheme .. "://" .. URL, 0, 0, true) | 426 | checkHEAD(host, scheme .. "://" .. URL, 0, 0, true) |
427 | APT.tested(scheme, 'URLSanity', host) | ||
420 | end | 428 | end |
421 | if nil ~= cor then | 429 | if nil ~= cor then |
422 | D('*>* About to resume coroutine after checkHEAD(' .. host .. ' , ' .. scheme .. ' :// ' .. URL .. ')') | 430 | D('*>* About to resume coroutine after checkHEAD(' .. host .. ' , ' .. scheme .. ' :// ' .. URL .. ')') |
@@ -700,11 +708,13 @@ local parseDebs = function(host) | |||
700 | if sha ~= fsha:sub(2, -2) then E('Package SHA256 sum mismatch - results/' .. host .. "/merged/" .. p, 'http', 'Integrity', host) end | 708 | if sha ~= fsha:sub(2, -2) then E('Package SHA256 sum mismatch - results/' .. host .. "/merged/" .. p, 'http', 'Integrity', host) end |
701 | -- TODO - maybe check the PGP key, though packages are mostly not signed. | 709 | -- TODO - maybe check the PGP key, though packages are mostly not signed. |
702 | end | 710 | end |
711 | APT.tested('http', 'Integrity', host) | ||
703 | end | 712 | end |
704 | if APT.testing("Updated") then | 713 | if APT.testing("Updated") then |
705 | if sz ~= fsz:sub(2, -2) then | 714 | if sz ~= fsz:sub(2, -2) then |
706 | E('Package size mismatch for ' .. host .. "/merged/" .. p, 'http', 'Updated', host) | 715 | E('Package size mismatch for ' .. host .. "/merged/" .. p, 'http', 'Updated', host) |
707 | end | 716 | end |
717 | APT.tested('http', 'Updated', host) | ||
708 | end | 718 | end |
709 | os.execute('rm -f results/' .. host .. "/merged/" .. p) | 719 | os.execute('rm -f results/' .. host .. "/merged/" .. p) |
710 | else | 720 | else |
@@ -839,6 +849,7 @@ local parseRelease = function(host) | |||
839 | " results/" .. host .. "/merged/dists/" .. n .. '/' .. o:sub(1, -5)):Nice():noErr():log():Do().status | 849 | " results/" .. host .. "/merged/dists/" .. n .. '/' .. o:sub(1, -5)):Nice():noErr():log():Do().status |
840 | if 0 ~= status then E("GPG check failed for " .. host .. "/merged/dists/" .. n .. '/' .. o, "http", "Integrity", host) end | 850 | if 0 ~= status then E("GPG check failed for " .. host .. "/merged/dists/" .. n .. '/' .. o, "http", "Integrity", host) end |
841 | -- TODO - should check the PGP sig of InRelease as well. | 851 | -- TODO - should check the PGP sig of InRelease as well. |
852 | APT.tested('http', 'Integrity', host) | ||
842 | end | 853 | end |
843 | os.execute('rm results/' .. host .. '/merged/dists/' .. n .. '/' .. o) | 854 | os.execute('rm results/' .. host .. '/merged/dists/' .. n .. '/' .. o) |
844 | end | 855 | end |
@@ -885,6 +896,7 @@ local parseRelease = function(host) | |||
885 | else | 896 | else |
886 | updated = true | 897 | updated = true |
887 | end | 898 | end |
899 | APT.tested('http', 'Updated', host) | ||
888 | end | 900 | end |
889 | end | 901 | end |
890 | 902 | ||