Commit 172786ec by Patrick Steinhardt

examples: use username provided via URL

The credentials callback may be passed a username in case where
the URL already includes the expected username. As we usually
cannot use a different username in such context, we should use
that one if provided and not ask the user for a diferent
username.
parent 611fbe4f
...@@ -353,14 +353,19 @@ int cred_acquire_cb(git_cred **out, ...@@ -353,14 +353,19 @@ int cred_acquire_cb(git_cred **out,
int error = 1; int error = 1;
UNUSED(url); UNUSED(url);
UNUSED(username_from_url);
UNUSED(payload); UNUSED(payload);
if (username_from_url) {
if ((username = strdup(username_from_url)) == NULL)
goto out;
} else if ((error = ask(&username, "Username:", 0)) < 0) {
goto out;
}
if (allowed_types & GIT_CREDTYPE_SSH_KEY) { if (allowed_types & GIT_CREDTYPE_SSH_KEY) {
int n; int n;
if ((error = ask(&username, "Username:", 0)) < 0 || if ((error = ask(&privkey, "SSH Key:", 0)) < 0 ||
(error = ask(&privkey, "SSH Key:", 0)) < 0 ||
(error = ask(&password, "Password:", 1)) < 0) (error = ask(&password, "Password:", 1)) < 0)
goto out; goto out;
...@@ -371,15 +376,11 @@ int cred_acquire_cb(git_cred **out, ...@@ -371,15 +376,11 @@ int cred_acquire_cb(git_cred **out,
error = git_cred_ssh_key_new(out, username, pubkey, privkey, password); error = git_cred_ssh_key_new(out, username, pubkey, privkey, password);
} else if (allowed_types & GIT_CREDTYPE_USERPASS_PLAINTEXT) { } else if (allowed_types & GIT_CREDTYPE_USERPASS_PLAINTEXT) {
if ((error = ask(&username, "Username:", 0)) < 0 || if ((error = ask(&password, "Password:", 1)) < 0)
(error = ask(&password, "Password:", 1)) < 0)
goto out; goto out;
error = git_cred_userpass_plaintext_new(out, username, password); error = git_cred_userpass_plaintext_new(out, username, password);
} else if (allowed_types & GIT_CREDTYPE_USERNAME) { } else if (allowed_types & GIT_CREDTYPE_USERNAME) {
if ((error = ask(&username, "Username:", 0)) < 0)
goto out;
error = git_cred_username_new(out, username); error = git_cred_username_new(out, username);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment