[PATCH] support older versions of libcurl

Subsystems: the rest

STALE3711d

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] support older versions of libcurl

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:02

Some newer features of libcurl are used which are not strictly necessary
for http-pull. Use them only if libcurl is new enough to know about them.

Signed-off-by: Johannes Schindelin <redacted>

---

 http-pull.c |    6 ++++++
 1 files changed, 6 insertions
diff --git a/http-pull.c b/http-pull.c
--- a/http-pull.c
+++ b/http-pull.c
@@ -171,19 +171,25 @@ int main(int argc, char **argv)
 	commit_id = argv[arg];
 	url = argv[arg + 1];

+#if LIBCURL_VERSION_NUM >= 0x070800
 	curl_global_init(CURL_GLOBAL_ALL);
+#endif

 	curl = curl_easy_init();

 	curl_ssl_verify = gitenv("GIT_SSL_NO_VERIFY") ? 0 : 1;
 	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
+#if LIBCURL_VERSION_NUM >= 0x070907
 	curl_easy_setopt(curl, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+#endif

 	base = url;

 	if (pull(commit_id))
 		return 1;

+#if LIBCURL_VERSION_NUM >= 0x070704
 	curl_global_cleanup();
+#endif
 	return 0;
 }

Re: [PATCH] support older versions of libcurl

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:02

Johannes Schindelin [off-list ref] writes:
Some newer features of libcurl are used which are not strictly necessary
for http-pull. Use them only if libcurl is new enough to know about them.
Do you need to check against that many versions?  Especially
cleanup and init not depending on the same version number looks
really suspicious.

Assuming that the answer is still yes, how about doing things
this way instead?

---
diff --git a/http-pull.c b/http-pull.c
--- a/http-pull.c
+++ b/http-pull.c
@@ -6,6 +6,16 @@
 #include <curl/curl.h>
 #include <curl/easy.h>
 
+#if LIBCURL_VERSION_NUM < 0x070704
+#define curl_global_cleanup() do { /* nothing */ } while(0)
+#endif
+#if LIBCURL_VERSION_NUM < 0x070800
+#define curl_global_init(a) do { /* nothing */ } while(0)
+#endif
+#if LIBCURL_VERSION_NUM < 0x070907
+#define curl_easy_setopt(a, b, c) do { /* nothing */ } while(0)
+#endif
+
 static CURL *curl;
 
 static char *base;

Re: [PATCH] support older versions of libcurl

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:03

Hi,

On Thu, 28 Jul 2005, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:
quoted
Some newer features of libcurl are used which are not strictly necessary
for http-pull. Use them only if libcurl is new enough to know about them.
Do you need to check against that many versions?  Especially
cleanup and init not depending on the same version number looks
really suspicious.
I investigated the issue using curl's CVS. The different version numbers
are easily explained: While curl_global_init is defined starting from
0x070704, CURL_GLOBAL_ALL is only defined starting from 0x070800.
Assuming that the answer is still yes, how about doing things
this way instead?
Looks better.

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help