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;