mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
http: drop support for curl < 7.11.1
Drop support for this ancient version of curl and simplify the code by
allowing us get rid of some "#ifdef"'s.
Git will not build with vanilla curl older than 7.11.1 due our use of
CURLOPT_POSTFIELDSIZE in 37ee680d9b
(http.postbuffer: allow full range of ssize_t values,
2017-04-11). This field was introduced in curl 7.11.1.
We could solve these compilation problems with more #ifdefs,
but it's not worth the trouble. Version 7.11.1 came out in
March of 2004, over 17 years ago. Let's declare that too old
and drop any existing ifdefs that go further back. One
obvious benefit is that we'll have fewer conditional bits
cluttering the code.
This patch drops all #ifdefs that reference older versions
(note that curl's preprocessor macros are in hex, so we're
looking for 070b01, not 071101).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ebf3c04b26
commit
1119a15b5c
53
http.c
53
http.c
|
@ -19,19 +19,11 @@
|
|||
static struct trace_key trace_curl = TRACE_KEY_INIT(CURL);
|
||||
static int trace_curl_data = 1;
|
||||
static int trace_curl_redact = 1;
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a08
|
||||
long int git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER;
|
||||
#else
|
||||
long int git_curl_ipresolve;
|
||||
#endif
|
||||
int active_requests;
|
||||
int http_is_verbose;
|
||||
ssize_t http_post_buffer = 16 * LARGE_PACKET_MAX;
|
||||
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a06
|
||||
#define LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
#endif
|
||||
|
||||
static int min_curl_sessions = 1;
|
||||
static int curl_session_count;
|
||||
#ifdef USE_CURL_MULTI
|
||||
|
@ -68,15 +60,9 @@ static struct {
|
|||
{ "tlsv1.3", CURL_SSLVERSION_TLSv1_3 },
|
||||
#endif
|
||||
};
|
||||
#if LIBCURL_VERSION_NUM >= 0x070903
|
||||
static const char *ssl_key;
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x070908
|
||||
static const char *ssl_capath;
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x071304
|
||||
static const char *curl_no_proxy;
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x072c00
|
||||
static const char *ssl_pinnedkey;
|
||||
#endif
|
||||
|
@ -101,9 +87,7 @@ static struct {
|
|||
{ "digest", CURLAUTH_DIGEST },
|
||||
{ "negotiate", CURLAUTH_GSSNEGOTIATE },
|
||||
{ "ntlm", CURLAUTH_NTLM },
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
{ "anyauth", CURLAUTH_ANY },
|
||||
#endif
|
||||
/*
|
||||
* CURLAUTH_DIGEST_IE has no corresponding command-line option in
|
||||
* curl(1) and is not included in CURLAUTH_ANY, so we leave it out
|
||||
|
@ -143,7 +127,6 @@ enum http_follow_config http_follow_config = HTTP_FOLLOW_INITIAL;
|
|||
|
||||
static struct credential cert_auth = CREDENTIAL_INIT;
|
||||
static int ssl_cert_password_required;
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
static unsigned long http_auth_methods = CURLAUTH_ANY;
|
||||
static int http_auth_methods_restricted;
|
||||
/* Modes for which empty_auth cannot actually help us. */
|
||||
|
@ -153,7 +136,6 @@ static unsigned long empty_auth_useless =
|
|||
| CURLAUTH_DIGEST_IE
|
||||
#endif
|
||||
| CURLAUTH_DIGEST;
|
||||
#endif
|
||||
|
||||
static struct curl_slist *pragma_header;
|
||||
static struct curl_slist *no_pragma_header;
|
||||
|
@ -237,12 +219,8 @@ static void finish_active_slot(struct active_request_slot *slot)
|
|||
if (slot->results != NULL) {
|
||||
slot->results->curl_result = slot->curl_result;
|
||||
slot->results->http_code = slot->http_code;
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a08
|
||||
curl_easy_getinfo(slot->curl, CURLINFO_HTTPAUTH_AVAIL,
|
||||
&slot->results->auth_avail);
|
||||
#else
|
||||
slot->results->auth_avail = 0;
|
||||
#endif
|
||||
|
||||
curl_easy_getinfo(slot->curl, CURLINFO_HTTP_CONNECTCODE,
|
||||
&slot->results->http_connectcode);
|
||||
|
@ -305,14 +283,10 @@ static int http_options(const char *var, const char *value, void *cb)
|
|||
return git_config_string(&ssl_version, var, value);
|
||||
if (!strcmp("http.sslcert", var))
|
||||
return git_config_pathname(&ssl_cert, var, value);
|
||||
#if LIBCURL_VERSION_NUM >= 0x070903
|
||||
if (!strcmp("http.sslkey", var))
|
||||
return git_config_pathname(&ssl_key, var, value);
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x070908
|
||||
if (!strcmp("http.sslcapath", var))
|
||||
return git_config_pathname(&ssl_capath, var, value);
|
||||
#endif
|
||||
if (!strcmp("http.sslcainfo", var))
|
||||
return git_config_pathname(&ssl_cainfo, var, value);
|
||||
if (!strcmp("http.sslcertpasswordprotected", var)) {
|
||||
|
@ -461,12 +435,6 @@ static int curl_empty_auth_enabled(void)
|
|||
if (curl_empty_auth >= 0)
|
||||
return curl_empty_auth;
|
||||
|
||||
#ifndef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
/*
|
||||
* Our libcurl is too old to do AUTH_ANY in the first place;
|
||||
* just default to turning the feature off.
|
||||
*/
|
||||
#else
|
||||
/*
|
||||
* In the automatic case, kick in the empty-auth
|
||||
* hack as long as we would potentially try some
|
||||
|
@ -479,7 +447,6 @@ static int curl_empty_auth_enabled(void)
|
|||
if (http_auth_methods_restricted &&
|
||||
(http_auth_methods & ~empty_auth_useless))
|
||||
return 1;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -552,7 +519,6 @@ static void init_curl_proxy_auth(CURL *result)
|
|||
|
||||
var_override(&http_proxy_authmethod, getenv("GIT_HTTP_PROXY_AUTHMETHOD"));
|
||||
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a07 /* CURLOPT_PROXYAUTH and CURLAUTH_ANY */
|
||||
if (http_proxy_authmethod) {
|
||||
int i;
|
||||
for (i = 0; i < ARRAY_SIZE(proxy_authmethods); i++) {
|
||||
|
@ -570,7 +536,6 @@ static void init_curl_proxy_auth(CURL *result)
|
|||
}
|
||||
else
|
||||
curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int has_cert_password(void)
|
||||
|
@ -879,12 +844,8 @@ static CURL *get_curl_handle(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if LIBCURL_VERSION_NUM >= 0x070907
|
||||
curl_easy_setopt(result, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
|
||||
#endif
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
curl_easy_setopt(result, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
||||
#endif
|
||||
|
||||
#ifdef CURLGSSAPI_DELEGATION_FLAG
|
||||
if (curl_deleg) {
|
||||
|
@ -940,14 +901,10 @@ static CURL *get_curl_handle(void)
|
|||
curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert);
|
||||
if (has_cert_password())
|
||||
curl_easy_setopt(result, CURLOPT_KEYPASSWD, cert_auth.password);
|
||||
#if LIBCURL_VERSION_NUM >= 0x070903
|
||||
if (ssl_key != NULL)
|
||||
curl_easy_setopt(result, CURLOPT_SSLKEY, ssl_key);
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x070908
|
||||
if (ssl_capath != NULL)
|
||||
curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x072c00
|
||||
if (ssl_pinnedkey != NULL)
|
||||
curl_easy_setopt(result, CURLOPT_PINNEDPUBLICKEY, ssl_pinnedkey);
|
||||
|
@ -1180,12 +1137,8 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
|
|||
curl_ssl_verify = 0;
|
||||
|
||||
set_from_env(&ssl_cert, "GIT_SSL_CERT");
|
||||
#if LIBCURL_VERSION_NUM >= 0x070903
|
||||
set_from_env(&ssl_key, "GIT_SSL_KEY");
|
||||
#endif
|
||||
#if LIBCURL_VERSION_NUM >= 0x070908
|
||||
set_from_env(&ssl_capath, "GIT_SSL_CAPATH");
|
||||
#endif
|
||||
set_from_env(&ssl_cainfo, "GIT_SSL_CAINFO");
|
||||
|
||||
set_from_env(&user_agent, "GIT_HTTP_USER_AGENT");
|
||||
|
@ -1367,12 +1320,8 @@ struct active_request_slot *get_active_slot(void)
|
|||
else
|
||||
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0);
|
||||
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a08
|
||||
curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
|
||||
#endif
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
|
||||
#endif
|
||||
if (http_auth.password || curl_empty_auth_enabled())
|
||||
init_curl_http_auth(slot->curl);
|
||||
|
||||
|
@ -1654,13 +1603,11 @@ static int handle_curl_result(struct slot_results *results)
|
|||
credential_reject(&http_auth);
|
||||
return HTTP_NOAUTH;
|
||||
} else {
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
http_auth_methods &= ~CURLAUTH_GSSNEGOTIATE;
|
||||
if (results->auth_avail) {
|
||||
http_auth_methods &= results->auth_avail;
|
||||
http_auth_methods_restricted = 1;
|
||||
}
|
||||
#endif
|
||||
return HTTP_REAUTH;
|
||||
}
|
||||
} else {
|
||||
|
|
12
http.h
12
http.h
|
@ -22,13 +22,7 @@
|
|||
#define DEFAULT_MAX_REQUESTS 5
|
||||
#endif
|
||||
|
||||
#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)
|
||||
#elif LIBCURL_VERSION_NUM >= 0x070c00
|
||||
#if LIBCURL_VERSION_NUM >= 0x070c00
|
||||
#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
|
||||
xrealloc, xstrdup, xcalloc)
|
||||
#endif
|
||||
|
@ -37,10 +31,6 @@
|
|||
#define NO_CURL_EASY_DUPHANDLE
|
||||
#endif
|
||||
|
||||
#if LIBCURL_VERSION_NUM < 0x070a03
|
||||
#define CURLE_HTTP_RETURNED_ERROR CURLE_HTTP_NOT_FOUND
|
||||
#endif
|
||||
|
||||
#if LIBCURL_VERSION_NUM < 0x070c03
|
||||
#define NO_CURL_IOCTL
|
||||
#endif
|
||||
|
|
|
@ -185,8 +185,6 @@ static int set_option(const char *name, const char *value)
|
|||
strbuf_detach(&unquoted, NULL));
|
||||
}
|
||||
return 0;
|
||||
|
||||
#if LIBCURL_VERSION_NUM >= 0x070a08
|
||||
} else if (!strcmp(name, "family")) {
|
||||
if (!strcmp(value, "ipv4"))
|
||||
git_curl_ipresolve = CURL_IPRESOLVE_V4;
|
||||
|
@ -197,7 +195,6 @@ static int set_option(const char *name, const char *value)
|
|||
else
|
||||
return -1;
|
||||
return 0;
|
||||
#endif /* LIBCURL_VERSION_NUM >= 0x070a08 */
|
||||
} else if (!strcmp(name, "from-promisor")) {
|
||||
options.from_promisor = 1;
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue