summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-11-06 21:22:19 -0800
committerJunio C Hamano <gitster@pobox.com>2011-11-06 21:22:19 -0800
commit78c17b9943ade62e6eebe069fadaecc637b301df (patch)
tree958faed204163983795a42dae5d491409569c7fb
parentde263479506066f240cf629aa3aac50c94668d89 (diff)
parent986bbc0842334f0e07731fa37f2a55d2930a5b8c (diff)
downloadgit-78c17b9943ade62e6eebe069fadaecc637b301df.tar.gz
Merge branch 'sn/http-auth-with-netrc-fix'
* sn/http-auth-with-netrc-fix: http: don't always prompt for password
-rw-r--r--http.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/http.c b/http.c
index a4bc770e2d..008ad72ae5 100644
--- a/http.c
+++ b/http.c
@@ -279,8 +279,6 @@ static CURL *get_curl_handle(void)
curl_easy_setopt(result, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
#endif
- init_curl_http_auth(result);
-
if (ssl_cert != NULL)
curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert);
if (has_cert_password())
@@ -846,7 +844,7 @@ static int http_request(const char *url, void *result, int target, int options)
else if (missing_target(&results))
ret = HTTP_MISSING_TARGET;
else if (results.http_code == 401) {
- if (user_name) {
+ if (user_name && user_pass) {
ret = HTTP_NOAUTH;
} else {
/*
@@ -855,7 +853,8 @@ static int http_request(const char *url, void *result, int target, int options)
* but that is non-portable. Using git_getpass() can at least be stubbed
* on other platforms with a different implementation if/when necessary.
*/
- user_name = xstrdup(git_getpass_with_description("Username", description));
+ if (!user_name)
+ user_name = xstrdup(git_getpass_with_description("Username", description));
init_curl_http_auth(slot->curl);
ret = HTTP_REAUTH;
}