git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4] Work around curl-gnutls not liking to be reinitialized

From
Mike Hommey <mh@glandium.org>
Date
Feb 9, 2008, 09:41 UTC
Message-ID
<1202550096-13233-1-git-send-email-mh@glandium.org>
In-Reply-To
<1202512124-28669-1-git-send-email-mh@glandium.org>

curl versions 7.16.3 to 7.18.0 included had a regression in which https requests following curl_global_cleanup/init sequence would fail with ASN1 parser errors with curl-gnutls. Such sequences happen in some cases such as git fetch.

We work around this by removing the http_init and http_cleanup calls from get_refs_via_curl, replacing them with a transport->data initialization with the http_walker (which does http_init).

While the http_walker is not currently used in get_refs_via_curl, http and walker code refactor will make it use it.

Signed-off-by: Mike Hommey <mh@glandium.org>
---
 FWIW, the previous patch lacked an initialization for pragma_header. But I
 actually got a better idea ; a more long-term one.
 transport.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/transport.c b/transport.c
index babaa21..497f853 100644
--- a/transport.c
+++ b/transport.c
@@ -441,11 +441,12 @@ static struct ref *get_refs_via_curl(struct transport *transport)
 	struct ref *ref = NULL;
 	struct ref *last_ref = NULL;
 
+	if (!transport->data)
+		transport->data = get_http_walker(transport->url);
+
 	refs_url = xmalloc(strlen(transport->url) + 11);
 	sprintf(refs_url, "%s/info/refs", transport->url);
 
-	http_init();
-
 	slot = get_active_slot();
 	slot->results = &results;
 	curl_easy_setopt(slot->curl, CURLOPT_FILE, &buffer);
@@ -473,8 +474,6 @@ static struct ref *get_refs_via_curl(struct transport *transport)
 		return NULL;
 	}
 
-	http_cleanup();
-
 	data = buffer.buf;
 	start = NULL;
 	mid = data;
-- 
1.5.4.35.gb88c
Previous: Mike HommeyNext: Daniel Stenberg
Message 24 of 44 in “git-fetch in 1.5.4 fails versus 1.5.3.8”
  1. Anand KumriaFeb 4, 2008
  2. Jeff KingFeb 5, 2008
  3. Jari AaltoFeb 5, 2008
  4. Anand KumriaFeb 6, 2008
  5. Jeff KingFeb 7, 2008
  6. Mike HommeyFeb 7, 2008
  7. Anand KumriaFeb 7, 2008
  8. Jeff KingFeb 7, 2008
  9. Mike HommeyFeb 7, 2008
  10. Jeff KingFeb 7, 2008
  11. Mike HommeyFeb 7, 2008
  12. Jeff KingFeb 8, 2008
  13. Mike HommeyFeb 8, 2008
  14. Mike HommeyFeb 8, 2008
  15. Work around curl-gnutls not liking to be reinitializedMike Hommey, Feb 8, 2008
  16. Mike HommeyFeb 8, 2008
  17. Junio C HamanoFeb 8, 2008
  18. Mike HommeyFeb 8, 2008
  19. Mike HommeyFeb 8, 2008
  20. Work around curl-gnutls not liking to be reinitializedMike Hommey, Feb 8, 2008
  21. Johannes SchindelinFeb 8, 2008
  22. Work around curl-gnutls not liking to be reinitializedMike Hommey, Feb 8, 2008
  23. Mike HommeyFeb 8, 2008
  24. Work around curl-gnutls not liking to be reinitializedMike Hommey, Feb 9, 2008
  25. Daniel StenbergFeb 9, 2008
  26. Florian WeimerFeb 9, 2008
  27. Mike HommeyFeb 9, 2008
  28. Johannes SchindelinFeb 8, 2008
  29. Mike HommeyFeb 8, 2008
  30. Jeff KingFeb 9, 2008
  31. Frank LichtenheldFeb 7, 2008
  32. Linus TorvaldsFeb 7, 2008
  33. Frank LichtenheldFeb 7, 2008
  34. Linus TorvaldsFeb 7, 2008
  35. Anand KumriaFeb 7, 2008
  36. Jeff KingFeb 7, 2008
  37. Linus TorvaldsFeb 7, 2008
  38. Martin LanghoffFeb 7, 2008
  39. Dmitry PotapovFeb 7, 2008
  40. Jeff KingFeb 7, 2008
  41. Jeff KingFeb 7, 2008
  42. Dmitry PotapovFeb 7, 2008
  43. Anand KumriaFeb 8, 2008
  44. Dmitry PotapovFeb 8, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.