git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Hommey <mh@glandium.org>
To: git@vger.kernel.org, gitster@pobox.com
Cc: johannes.schindelin@gmx.de
Subject: [WIP Patch 07/12] Use the new http API in http-push.c:fetch_indices()
Date: Sun, 18 Jan 2009 09:04:32 +0100	[thread overview]
Message-ID: <1232265877-3649-8-git-send-email-mh@glandium.org> (raw)
In-Reply-To: <1232265877-3649-7-git-send-email-mh@glandium.org>


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

  reply	other threads:[~2009-01-18  8:06 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-17 15:36 [PATCH] http-push: fix off-by-path_len Johannes Schindelin
2009-01-17 15:40 ` Where's Nick?, was " Johannes Schindelin
2009-01-17 15:41 ` [PATCH] t5540: clarify that http-push does not handle packed-refs on the remote Johannes Schindelin
2009-01-18  7:49 ` [PATCH] http-push: fix off-by-path_len Mike Hommey
2009-01-18  8:04   ` [WIP Patch 00/12] Refactoring the http API Mike Hommey
2009-01-18  8:04     ` [WIP Patch 01/12] Don't expect verify_pack() callers to set pack_size Mike Hommey
2009-01-18  8:04       ` [WIP Patch 02/12] Some cleanup in get_refs_via_curl() Mike Hommey
2009-01-18  8:04         ` [WIP Patch 03/12] Two new functions for the http API Mike Hommey
2009-01-18  8:04           ` [WIP Patch 04/12] Use the new http API in http_fetch_ref() Mike Hommey
2009-01-18  8:04             ` [WIP Patch 05/12] Use the new http API in get_refs_via_curl() Mike Hommey
2009-01-18  8:04               ` [WIP Patch 06/12] Use the new http API in http-walker.c:fetch_indices() Mike Hommey
2009-01-18  8:04                 ` Mike Hommey [this message]
2009-01-18  8:04                   ` [WIP Patch 08/12] Use the new http API in update_remote_info_refs() Mike Hommey
2009-01-18  8:04                     ` [WIP Patch 09/12] Use the new http API in fetch_symref() Mike Hommey
2009-01-18  8:04                       ` [WIP Patch 10/12] Use the new http API in http-walker.c:fetch_index() Mike Hommey
2009-01-18  8:04                         ` [WIP Patch 11/12] Use the new http API in http-push.c:fetch_index() Mike Hommey
2009-01-18  8:04                           ` [WIP Patch 12/12] Use the new http API in http-walker.c:fetch_pack() Mike Hommey
2009-01-18 15:18                     ` [WIP Patch 08/12] Use the new http API in update_remote_info_refs() Johannes Schindelin
2009-01-18 19:23                       ` Mike Hommey
2009-01-18 15:14                   ` [WIP Patch 07/12] Use the new http API in http-push.c:fetch_indices() Johannes Schindelin
2009-01-18 15:12               ` [WIP Patch 05/12] Use the new http API in get_refs_via_curl() Johannes Schindelin
2009-01-18 15:10             ` [WIP Patch 04/12] Use the new http API in http_fetch_ref() Johannes Schindelin
2009-01-18 19:21               ` Mike Hommey
2009-01-18 15:03           ` [WIP Patch 03/12] Two new functions for the http API Johannes Schindelin
2009-01-18 19:06         ` [WIP Patch 02/12] Some cleanup in get_refs_via_curl() Johannes Schindelin
2009-01-18 19:11           ` Johannes Schindelin
2009-01-18 19:30             ` Mike Hommey
2009-01-18 21:09               ` Johannes Schindelin
2009-01-18 19:19           ` Mike Hommey
2009-01-18 21:10             ` Johannes Schindelin
2009-01-18  8:30     ` [WIP Patch 00/12] Refactoring the http API Junio C Hamano
2009-01-18  9:12       ` Mike Hommey
2009-01-18 11:29         ` Boyd Stephen Smith Jr.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1232265877-3649-8-git-send-email-mh@glandium.org \
    --to=mh@glandium.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).