diff options
author | Mike Hommey <mh@glandium.org> | 2009-06-06 16:43:57 +0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-06 11:03:11 -0700 |
commit | 446b941a57d96e0c02375534b6b3f6816e7364e5 (patch) | |
tree | f4b06840d1e80aa55e2a31c1110718330caf5ae0 | |
parent | http.c::http_fetch_ref(): use the new http API (diff) | |
download | tgif-446b941a57d96e0c02375534b6b3f6816e7364e5.tar.xz |
http-push.c::remote_exists(): use the new http API
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | http-push.c | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/http-push.c b/http-push.c index f18da2a263..c5642b5d4d 100644 --- a/http-push.c +++ b/http-push.c @@ -2004,29 +2004,22 @@ static void update_remote_info_refs(struct remote_lock *lock) static int remote_exists(const char *path) { char *url = xmalloc(strlen(repo->url) + strlen(path) + 1); - struct active_request_slot *slot; - struct slot_results results; - int ret = -1; + int ret; sprintf(url, "%s%s", repo->url, path); - slot = get_active_slot(); - slot->results = &results; - curl_easy_setopt(slot->curl, CURLOPT_URL, url); - curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 1); - - if (start_active_slot(slot)) { - run_active_slot(slot); - if (results.http_code == 404) - ret = 0; - else if (results.curl_result == CURLE_OK) - ret = 1; - else - fprintf(stderr, "HEAD HTTP error %ld\n", results.http_code); - } else { - fprintf(stderr, "Unable to start HEAD request\n"); + switch (http_get_strbuf(url, NULL, 0)) { + case HTTP_OK: + ret = 1; + break; + case HTTP_MISSING_TARGET: + ret = 0; + break; + case HTTP_ERROR: + http_error(url, HTTP_ERROR); + default: + ret = -1; } - free(url); return ret; } |