Skip to content

Commit

Permalink
remote-curl: include curl_errorstr on SSL setup failures
Browse files Browse the repository at this point in the history
For curl error 35 (CURLE_SSL_CONNECT_ERROR) users need the
additional text stored in CURLOPT_ERRORBUFFER to debug why
the connection did not start. This is curl_errorstr inside
of http.c, so include that in the message if it is non-empty.

Sometimes HTTP response codes aren't yet available, such as
when the SSL setup fails. Don't include HTTP 0 in the message.

Signed-off-by: Shawn Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Shawn Pearce authored and Junio C Hamano committed Feb 15, 2016
1 parent a08595f commit 0054045
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions remote-curl.c
Original file line number Diff line number Diff line change
Expand Up @@ -439,8 +439,20 @@ static int run_slot(struct active_request_slot *slot,
err = run_one_slot(slot, results);

if (err != HTTP_OK && err != HTTP_REAUTH) {
error("RPC failed; result=%d, HTTP code = %ld",
results->curl_result, results->http_code);
struct strbuf msg = STRBUF_INIT;
if (results->http_code && results->http_code != 200)
strbuf_addf(&msg, "HTTP %ld", results->http_code);
if (results->curl_result != CURLE_OK) {
if (msg.len)
strbuf_addch(&msg, ' ');
strbuf_addf(&msg, "curl %d", results->curl_result);
if (curl_errorstr[0]) {
strbuf_addch(&msg, ' ');
strbuf_addstr(&msg, curl_errorstr);
}
}
error("RPC failed; %s", msg.buf);
strbuf_release(&msg);
}

return err;
Expand Down

0 comments on commit 0054045

Please sign in to comment.