This patch series applies on pu.
The major differences between this series and the 11-patch long one (dated May 15, 2009) are:
*check 'preq' pointer before using it (for fetching packs) [1]
*moved free(url) before 'abort' label to stop -Wuninitialized warning
(for fetching loose objects) [2]
*use unlink_or_warn, after 691f1a2 ("replace direct calls to unlink
(2) with unlink_or_warn")Junio: I've rebased the patch series on pu, hopefully this stops the attribute warnings for patch 3.
Tay Ray Chuan (3): http*: add helper methods for fetching packs http*: add helper methods for fetching objects/info/packs http*: add helper methods for fetching objects (loose)
http-push.c | 378 ++++++++-------------------------------------------- http-walker.c | 407 +++++++++++--------------------------------------------- http.c | 415 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- http.h | 72 ++++++++++- 4 files changed, 616 insertions(+), 656 deletions(-)
Footnotes:
[1] @@ -595,17 +595,21 @@ static void finish_request(struct transfer_request *request)
start_fetch_packed(request);
} else if (request->state == RUN_FETCH_PACKED) {
+ int fail = 1;
if (request->curl_result != CURLE_OK) {
fprintf(stderr, "Unable to get pack file %s\n%s",
request->url, curl_errorstr);
- repo->can_update_info_refs = 0;
} else {
preq = (struct http_pack_request *)request->userData;
- if (finish_http_pack_request(preq))
- repo->can_update_info_refs = 0;
+ if (preq) {
+ if (finish_http_pack_request(preq) > 0)
+ fail = 0;
+ release_http_pack_request(preq);
+ }
}
- release_http_pack_request(preq);
+ if (fail)
+ repo->can_update_info_refs = 0;
release_request(request);
}
}
[2] @@ -1167,9 +1167,9 @@ struct http_object_request
*new_http_object_request(const char *base_url,
return freq;
+ free(url);
abort:
free(filename);
- free(url);
free(freq);
return NULL;
}