Jeff King <p...@peff.net> writes:

> 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 <p...@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;
>  }
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to