mirror of
https://github.com/git/git.git
synced 2026-04-11 17:30:08 +02:00
git-core: Support retrieving passwords with GIT_ASKPASS
git tries to read a password from the terminal in imap-send and when talking to a http server that requires authentication. When a GUI is driving git, however, the end user is not paying attention to the terminal (there may not even be a terminal). GUI would appear to hang forever. Fix this problem by allowing a password-retrieving command to be specified in GIT_ASKPASS Signed-off-by: Frank Li <lznuaa@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
4
http.c
4
http.c
@@ -204,7 +204,7 @@ static void init_curl_http_auth(CURL *result)
|
||||
if (user_name) {
|
||||
struct strbuf up = STRBUF_INIT;
|
||||
if (!user_pass)
|
||||
user_pass = xstrdup(getpass("Password: "));
|
||||
user_pass = xstrdup(git_getpass("Password: "));
|
||||
strbuf_addf(&up, "%s:%s", user_name, user_pass);
|
||||
curl_easy_setopt(result, CURLOPT_USERPWD,
|
||||
strbuf_detach(&up, NULL));
|
||||
@@ -219,7 +219,7 @@ static int has_cert_password(void)
|
||||
return 0;
|
||||
/* Only prompt the user once. */
|
||||
ssl_cert_password_required = -1;
|
||||
ssl_cert_password = getpass("Certificate Password: ");
|
||||
ssl_cert_password = git_getpass("Certificate Password: ");
|
||||
if (ssl_cert_password != NULL) {
|
||||
ssl_cert_password = xstrdup(ssl_cert_password);
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user