Merge branch 'bc/http-fallback-to-password-after-krb-fails'
After attempting and failing a password-less authentication (e.g. kerberos), libcURL refuses to fall back to password based Basic authentication without a bit of help/encouragement. * bc/http-fallback-to-password-after-krb-fails: remote-curl: fall back to Basic auth if Negotiate fails
This commit is contained in:
commit
1c4ebbc3ad
10
http.c
10
http.c
@ -62,6 +62,9 @@ static const char *user_agent;
|
||||
|
||||
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;
|
||||
#endif
|
||||
|
||||
static struct curl_slist *pragma_header;
|
||||
static struct curl_slist *no_pragma_header;
|
||||
@ -580,6 +583,9 @@ struct active_request_slot *get_active_slot(void)
|
||||
curl_easy_setopt(slot->curl, CURLOPT_UPLOAD, 0);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
|
||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||
curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
|
||||
#endif
|
||||
if (http_auth.password)
|
||||
init_curl_http_auth(slot->curl);
|
||||
|
||||
@ -870,6 +876,9 @@ 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;
|
||||
#endif
|
||||
return HTTP_REAUTH;
|
||||
}
|
||||
} else {
|
||||
@ -986,6 +995,7 @@ static void extract_content_type(struct strbuf *raw, struct strbuf *type,
|
||||
strbuf_addstr(charset, "ISO-8859-1");
|
||||
}
|
||||
|
||||
|
||||
/* http_request() targets */
|
||||
#define HTTP_REQUEST_STRBUF 0
|
||||
#define HTTP_REQUEST_FILE 1
|
||||
|
Loading…
Reference in New Issue
Block a user