Skip to content
Snippets Groups Projects
Unverified Commit c42bcf73 authored by Dustin Rodrigues's avatar Dustin Rodrigues Committed by GitHub
Browse files

Merge pull request #8076 from dtrodrigues/301-redirect

curl: alert on 301 redirect
parents e7006bee c4d11374
No related branches found
No related tags found
No related merge requests found
......@@ -127,6 +127,8 @@ def curl_check_http_content(url, user_agents: [:default], check_content: false,
return "The URL #{url} is not reachable"
end
return "#{url} permanently redirects to #{details[:permanent_redirect]}" if url != details[:permanent_redirect]
unless http_status_ok?(details[:status])
return "The URL #{url} is not reachable (HTTP status code #{details[:status]})"
end
......@@ -203,20 +205,23 @@ def curl_http_content_headers_and_checksum(url, hash_needed: false, user_agent:
status_code = headers[%r{HTTP/.* (\d+)}, 1]
location = headers[/^Location:\s*(.*)$/i, 1]
final_url = location.chomp if location
permanent_redirect = location.chomp if status_code == "301"
end
output_hash = Digest::SHA256.file(file.path) if hash_needed
final_url ||= url
permanent_redirect ||= url
{
url: url,
final_url: final_url,
status: status_code,
etag: headers[%r{ETag: ([wW]/)?"(([^"]|\\")*)"}, 2],
content_length: headers[/Content-Length: (\d+)/, 1],
file_hash: output_hash,
file: output,
url: url,
final_url: final_url,
permanent_redirect: permanent_redirect,
status: status_code,
etag: headers[%r{ETag: ([wW]/)?"(([^"]|\\")*)"}, 2],
content_length: headers[/Content-Length: (\d+)/, 1],
file_hash: output_hash,
file: output,
}
ensure
file.unlink
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment