Re: [PATCH 7/8] http: factor out http error code handling
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 28, 2012, 18:06 UTC
- Message-ID
- <7vd32a28n7.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120827132604.GG17375@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 42 quoted lines
> Most of our http requests go through the http_request()
> interface, which does some nice post-processing on the
> results. In particular, it handles prompting for missing
> credentials as well as approving and rejecting valid or
> invalid credentials. Unfortunately, it only handles GET
> requests. Making it handle POSTs would be quite complex, so
> let's pull result handling code into its own function so
> that it can be reused from the POST code paths.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> http.c | 51 ++++++++++++++++++++++++++++-----------------------
> http.h | 1 +
> 2 files changed, 29 insertions(+), 23 deletions(-)
>
> diff --git a/http.c b/http.c
> index b61ac85..6793137 100644
> --- a/http.c
> +++ b/http.c
> @@ -745,6 +745,33 @@ char *get_remote_object_url(const char *url, const char *hex,
> return strbuf_detach(&buf, NULL);
> }
>
> +int handle_curl_result(struct active_request_slot *slot)
> +{
> + struct slot_results *results = slot->results;
> +
> + if (results->curl_result == CURLE_OK) {
> + credential_approve(&http_auth);
> + return HTTP_OK;
> + } else if (missing_target(results))
> +...
> + return HTTP_ERROR;
> + }
> +}
> +
> @@ -820,9 +828,6 @@ static int http_request(const char *url, void *result, int target, int options)
> curl_slist_free_all(headers);
> strbuf_release(&buf);
>
> - if (ret == HTTP_OK)
> - credential_approve(&http_auth);OK, now this is part of handle_curl_result() so the caller does not have to worry about it, which is nice ;-)
> return ret; > }