[WIP Patch 07/12] Use the new http API in http-push.c:fetch_indices()
Signed-off-by: Mike Hommey <mh@glandium.org>
---
http-push.c | 32 +++++++-------------------------
1 files changed, 7 insertions(+), 25 deletions(-)
diff --git a/http-push.c b/http-push.c
index e69179b..e0b4f5a 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1008,9 +1008,7 @@ static int fetch_indices(void)
struct strbuf buffer = STRBUF_INIT;
char *data;
int i = 0;
-
- struct active_request_slot *slot;
- struct slot_results results;
+ int ret = 0;
if (push_verbosely)
fprintf(stderr, "Getting pack list\n");
@@ -1018,28 +1016,10 @@ static int fetch_indices(void)
url = xmalloc(strlen(remote->url) + 20);
sprintf(url, "%sobjects/info/packs", remote->url);
- slot = get_active_slot();
- slot->results = &results;
- curl_easy_setopt(slot->curl, CURLOPT_FILE, &buffer);
- curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, fwrite_buffer);
- curl_easy_setopt(slot->curl, CURLOPT_URL, url);
- curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, NULL);
- if (start_active_slot(slot)) {
- run_active_slot(slot);
- if (results.curl_result != CURLE_OK) {
- strbuf_release(&buffer);
- free(url);
- if (results.http_code == 404)
- return 0;
- else
- return error("%s", curl_errorstr);
- }
- } else {
- strbuf_release(&buffer);
- free(url);
- return error("Unable to start request");
+ if (http_get_strbuf(url, &buffer, 0) != HTTP_OK) {
+ ret = -1;
+ goto cleanup;
}
- free(url);
data = buffer.buf;
while (i < buffer.len) {
@@ -1061,8 +1041,10 @@ static int fetch_indices(void)
i++;
}
+cleanup:
strbuf_release(&buffer);
- return 0;
+ free(url);
+ return ret;
}
static void one_remote_object(const char *hex)
--
1.6.1.141.gb32a