Currently, libcurl is limited to using HTTP Basic authentication if a username and password are specified. HTTP Basic passes the username and password to the server as plaintext, which is obviously suboptimal. Furthermore, some servers are configured to require a more secure authentication method (e.g. Digest or NTLM), which means that git can't talk to them at all. This is easily solved by telling libcurl to use any HTTP authentication method it pleases. I leave the decision as to whether HTTP Basic (i.e. completely insecure) should be allowed at all to somebody else. This can be easily changed in the future by using CURLAUTH_ANYSAFE instead of CURLAUTH_ANY. Signed-off-by: Nicholas Miell <nmiell@xxxxxxxxx> --- http.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) This passes make test; but I haven't actually tested it on a real HTTP server. diff --git a/http.c b/http.c index 23b2a19..1937b45 100644 --- a/http.c +++ b/http.c @@ -185,6 +185,7 @@ static void init_curl_http_auth(CURL *result) if (!user_pass) user_pass = xstrdup(getpass("Password: ")); strbuf_addf(&up, "%s:%s", user_name, user_pass); + curl_easy_setopt(result, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_easy_setopt(result, CURLOPT_USERPWD, strbuf_detach(&up, NULL)); } -- 1.6.2.5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html