From a50db1378eeee12ce7c728e056fb731c9282175f Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Fri, 8 Apr 2022 19:22:40 +0100 Subject: [PATCH] download_strategy: ignore query strings when parsing resolved URLs --- Library/Homebrew/download_strategy.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 45429fdd5f..234eab032b 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -327,7 +327,7 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy @resolved_url_and_basename = [url, parse_basename(url)] end - def parse_basename(url) + def parse_basename(url, search_query: true) uri_path = if url.match?(URI::DEFAULT_PARSER.make_regexp) uri = URI(url) @@ -339,7 +339,11 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy end end - uri.query ? "#{uri.path}?#{uri.query}" : uri.path + if uri.query && search_query + "#{uri.path}?#{uri.query}" + else + uri.path + end else url end @@ -509,8 +513,8 @@ class CurlDownloadStrategy < AbstractFileDownloadStrategy .map(&:to_i) .last - basename = filenames.last || parse_basename(redirect_url) is_redirection = url != redirect_url + basename = filenames.last || parse_basename(redirect_url, search_query: !is_redirection) @resolved_info_cache[url] = [redirect_url, basename, time, file_size, is_redirection] end