HTTP cleanup
PATCH 1/1 HTTP cleanup
Fix broken build when USE_CURL_MULTI is not defined, as noted by Becky Bruce.
During cleanup, free header slist that was created during init, as noted by Junio.
Signed-off-by Nick Hengeveld <[email protected]>
---
I've verified that git will build with USE_CURL_MULTI commented out, but have done very little testing of the resulting fetch/push binaries.
http-push.c | 8 ++++++++
http.c | 5 +++++ 2 files changed, 13 insertions(+), 0 deletions(-)
http-push.c +8 -0
@@ -788,6 +788,7 @@ static void finish_request(struct transf } } +#ifdef USE_CURL_MULTI void fill_active_slots (void ) {struct transfer_request *request = request_queue_head;
@@ -821,6 +822,7 @@ void fill_active_slots(void) slot = slot->next; } } +#endif static void get_remote_object_list (unsigned char parent);
@@ -851,8 +853,10 @@ static void add_fetch_request(struct obj request->next = request_queue_head; request_queue_head = request; +#ifdef USE_CURL_MULTI fill_active_slots ();step_active_slots (); +#endif }static int add_send_request (struct object *obj,struct remote_lock *lock)
@@ -889,8 +893,10 @@ static int add_send_request(struct objec request->next = request_queue_head; request_queue_head = request; +#ifdef USE_CURL_MULTI fill_active_slots ();step_active_slots (); +#endif return 1 ; }
@@ -2523,7 +2529,9 @@ int main(int argc, char **argv)if (objects_to_send)fprintf (stderr," sending %d objects\n" , objects_to_send); +#ifdef USE_CURL_MULTI fill_active_slots (); +#endif finish_all_active_slots ();/* Update the remote branch if all went well */
http.c +5 -0
@@ -287,6 +287,7 @@ #ifdef USE_CURL_MULTI#endif curl_global_cleanup (); +curl_slist_free_all (pragma_header); }struct active_request_slot *get_active_slot (void )
@@ -438,11 +439,15 @@ void release_active_slot(struct active_r {closedown_active_slot (slot);if (slot->curl) { +#ifdef USE_CURL_MULTI curl_multi_remove_handle (curlm, slot->curl); +#endif curl_easy_cleanup (slot->curl); slot->curl =NULL ; } +#ifdef USE_CURL_MULTI fill_active_slots (); +#endif }static void finish_active_slot (struct active_request_slot *slot)
Signature · 1 line
1.3.3.g423a-dirty
Thanks. I think this is needed on top of it.
-- >8 --
[PATCH] HTTP cleanup
This ifdef's out more functions that are not used while !USE_MULTI in http code. Also the dependency of http related objects on http.h header file was missing in the Makefile.
Signed-off-by Junio C Hamano <[email protected]>
--- Makefile | 3 ++- http-push.c | 70 ++++++++++++++++++++++++++++++----------------------------- 2 files changed, 38 insertions(+), 35 deletions(-)
Makefile +2 -1
@@ -552,7 +552,7 @@ http.o: http.c $(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $< ifdef NO_EXPAT -http-fetch.o: http-fetch.c +http-fetch.o: http-fetch.c http.h $(CC) -o $*.o -c $(ALL_CFLAGS) -DNO_EXPAT $< endif
@@ -576,6 +576,7 @@ git-ssh-push$X: rsh.o git-imap-send$X: imap-send.o $(LIB_FILE) +http.o http-fetch.o http-push.o: http.h git-http-fetch$X: fetch.o http.o http-fetch.o $(LIB_FILE) $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
http-push.c +36 -34
88 lines not on this page · raw message
Signature · 1 line
1.4.0.rc1.g9c41