http: avoid empty error messages for some curl errors
When asked to fetch over SSL without a valid /etc/ssl/certs/ca-certificates.crt file, "git fetch" writes error: while accessing https://github.com/torvalds/linux.git/info/refs which is a little disconcerting. Better to fall back to curl_easy_strerror(result) when the error string is empty, like the curl utility does: error: Problem with the SSL CA cert (path? access rights?) while accessing https://github.com/torvalds/linux.git/info/refs Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder committed
Sep 5, 2011 at 17:22 UTC
be22d92eac809ad2bfa2b7c83ad7cad5a15f1c43
1 file changed
+6
-1
http.c
+6
-1
@@ -846,8 +846,13 @@ static int http_request(const char *url, void *result, int target, int options)
846
init_curl_http_auth(slot->curl);
847
ret = HTTP_REAUTH;
848
}
849
- } else
849
+ } else {
850
+ if (!curl_errorstr[0])
851
+ strlcpy(curl_errorstr,
852
+ curl_easy_strerror(results.curl_result),
853
+ sizeof(curl_errorstr));
854
ret = HTTP_ERROR;
855
+ }
856
} else {
857
error("Unable to start HTTP request for %s", url);
858
ret = HTTP_START_FAILED;