X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=http.c;h=0ffd79cd81ba3e722dcdbf4c20469fa551ce9d80;hb=2ad9ba0382ca0d9a36746db804d1bf01f5281b8e;hp=8e72664061b1bafe18a51bc1fdcb3f36a4eeb1d5;hpb=2e05710a161e6287f239fae42b86b0cb46190834;p=git.git diff --git a/http.c b/http.c index 8e7266406..0ffd79cd8 100644 --- a/http.c +++ b/http.c @@ -43,6 +43,7 @@ static int curl_ftp_no_epsv; static const char *curl_http_proxy; static const char *curl_cookie_file; static struct credential http_auth = CREDENTIAL_INIT; +static int http_proactive_auth; static const char *user_agent; #if LIBCURL_VERSION_NUM >= 0x071700 @@ -252,6 +253,9 @@ static CURL *get_curl_handle(void) curl_easy_setopt(result, CURLOPT_HTTPAUTH, CURLAUTH_ANY); #endif + if (http_proactive_auth) + init_curl_http_auth(result); + if (ssl_cert != NULL) curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert); if (has_cert_password()) @@ -304,7 +308,7 @@ static void set_from_env(const char **var, const char *envname) *var = val; } -void http_init(struct remote *remote, const char *url) +void http_init(struct remote *remote, const char *url, int proactive_auth) { char *low_speed_limit; char *low_speed_time; @@ -315,6 +319,8 @@ void http_init(struct remote *remote, const char *url) curl_global_init(CURL_GLOBAL_ALL); + http_proactive_auth = proactive_auth; + if (remote && remote->http_proxy) curl_http_proxy = xstrdup(remote->http_proxy);