Skip to content

Commit

Permalink
Merge branch 'bc/http-fallback-to-password-after-krb-fails'
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Junio C Hamano committed Feb 11, 2015
2 parents 35d28f3 + 4dbe664 commit 1c4ebbc
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions http.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 1c4ebbc

Please sign in to comment.