Skip to content

Commit

Permalink
Merge pull request #18279 from samford/curl-work-with-56-exit_status
Browse files Browse the repository at this point in the history
  • Loading branch information
p-linnane authored Sep 9, 2024
2 parents fc49faf + c2f0bac commit 40648b5
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions Library/Homebrew/utils/curl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ module Curl
# code that is >= 400.
CURL_HTTP_RETURNED_ERROR_EXIT_CODE = 22

# Error returned when curl gets an error from the lowest networking layers
# that the receiving of data failed.
CURL_RECV_ERROR_EXIT_CODE = 56

# This regex is used to extract the part of an ETag within quotation marks,
# ignoring any leading weak validator indicator (`W/`). This simplifies
# ETag comparison in `#curl_check_http_content`.
Expand All @@ -38,6 +42,7 @@ module Curl

private_constant :CURL_WEIRD_SERVER_REPLY_EXIT_CODE,
:CURL_HTTP_RETURNED_ERROR_EXIT_CODE,
:CURL_RECV_ERROR_EXIT_CODE,
:ETAG_VALUE_REGEX, :HTTP_RESPONSE_BODY_SEPARATOR,
:HTTP_STATUS_LINE_REGEX

Expand Down Expand Up @@ -237,8 +242,11 @@ def curl_headers(*args, wanted_headers: [], **options)

# We still receive usable headers with certain non-successful exit
# statuses, so we special case them below.
if result.success? ||
[CURL_WEIRD_SERVER_REPLY_EXIT_CODE, CURL_HTTP_RETURNED_ERROR_EXIT_CODE].include?(result.exit_status)
if result.success? || [
CURL_WEIRD_SERVER_REPLY_EXIT_CODE,
CURL_HTTP_RETURNED_ERROR_EXIT_CODE,
CURL_RECV_ERROR_EXIT_CODE,
].include?(result.exit_status)
parsed_output = parse_curl_output(result.stdout)

if request_args.empty?
Expand Down

0 comments on commit 40648b5

Please sign in to comment.