Skip to content

Commit

Permalink
http: simplify http_error helper function
Browse files Browse the repository at this point in the history
This helper function should really be a one-liner that
prints an error message, but it has ended up unnecessarily
complicated:

  1. We call error() directly when we fail to start the curl
     request, so we must later avoid printing a duplicate
     error in http_error().

     It would be much simpler in this case to just stuff the
     error message into our usual curl_errorstr buffer
     rather than printing it ourselves. This means that
     http_error does not even have to care about curl's exit
     value (the interesting part is in the errorstr buffer
     already).

  2. We return the "ret" value passed in to us, but none of
     the callers actually cares about our return value. We
     can just drop this entirely.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Apr 7, 2013
1 parent d5ccbe4 commit 67d2a7b
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 12 deletions.
2 changes: 1 addition & 1 deletion http-push.c
Original file line number Diff line number Diff line change
Expand Up @@ -1551,7 +1551,7 @@ static int remote_exists(const char *path)
ret = 0;
break;
case HTTP_ERROR:
http_error(url, HTTP_ERROR);
http_error(url);
default:
ret = -1;
}
Expand Down
11 changes: 4 additions & 7 deletions http.c
Original file line number Diff line number Diff line change
Expand Up @@ -857,7 +857,8 @@ static int http_request(const char *url, struct strbuf *type,
run_active_slot(slot);
ret = handle_curl_result(&results);
} else {
error("Unable to start HTTP request for %s", url);
snprintf(curl_errorstr, sizeof(curl_errorstr),
"failed to start HTTP request");
ret = HTTP_START_FAILED;
}

Expand Down Expand Up @@ -940,13 +941,9 @@ static int http_get_file(const char *url, const char *filename, int options)
return ret;
}

int http_error(const char *url, int ret)
void http_error(const char *url)
{
/* http_request has already handled HTTP_START_FAILED. */
if (ret != HTTP_START_FAILED)
error("%s while accessing %s", curl_errorstr, url);

return ret;
error("%s while accessing %s", curl_errorstr, url);
}

int http_fetch_ref(const char *base, struct ref *ref)
Expand Down
5 changes: 2 additions & 3 deletions http.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,9 @@ extern char *get_remote_object_url(const char *url, const char *hex,
int http_get_strbuf(const char *url, struct strbuf *content_type, struct strbuf *result, int options);

/*
* Prints an error message using error() containing url and curl_errorstr,
* and returns ret.
* Prints an error message using error() containing url and curl_errorstr.
*/
int http_error(const char *url, int ret);
void http_error(const char *url);

extern int http_fetch_ref(const char *base, struct ref *ref);

Expand Down
2 changes: 1 addition & 1 deletion remote-curl.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ static struct discovery* discover_refs(const char *service, int for_push)
die("Authentication failed for '%s'", url);
default:
show_http_message(&type, &buffer);
http_error(url, http_ret);
http_error(url);
die("HTTP request failed");
}

Expand Down

0 comments on commit 67d2a7b

Please sign in to comment.