summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexandra Ellwood <lxs@mit.edu>2008-09-29 02:40:24 +0000
committerAlexandra Ellwood <lxs@mit.edu>2008-09-29 02:40:24 +0000
commit26fafa3b94d53a46d7e1b24d08afbb0b2360492d (patch)
tree2a9c92035ef3a499c2541cf9a70e3441b8e6f2dc /src
parentd3e2bb1e0146cae283dcd4f1c473084884e7c654 (diff)
downloadkrb5-26fafa3b94d53a46d7e1b24d08afbb0b2360492d.tar.gz
krb5-26fafa3b94d53a46d7e1b24d08afbb0b2360492d.tar.xz
krb5-26fafa3b94d53a46d7e1b24d08afbb0b2360492d.zip
kim_credential_create_new should support NULL in_identity.
Prompt for it. ticket: 6055 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20775 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/kim/lib/kim_credential.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/kim/lib/kim_credential.c b/src/kim/lib/kim_credential.c
index 8c7a347df..caafb0e97 100644
--- a/src/kim/lib/kim_credential.c
+++ b/src/kim/lib/kim_credential.c
@@ -211,6 +211,7 @@ kim_error kim_credential_create_new (kim_credential *out_credential,
kim_ui_context context;
kim_boolean ui_inited = 0;
kim_boolean done = 0;
+ kim_identity identity = in_identity;
if (!err && !out_credential) { err = check_error (KIM_NULL_PARAMETER_ERR); }
@@ -232,10 +233,16 @@ kim_error kim_credential_create_new (kim_credential *out_credential,
if (!err) {
err = kim_ui_init (&context);
- if (!err) {
- context.identity = in_identity; /* used by kim_ui_prompter */
- ui_inited = 1;
- }
+ if (!err) { ui_inited = 1; }
+ }
+
+ if (!err && !in_identity) {
+ err = kim_ui_enter_identity (&context, &identity);
+
+ }
+
+ if (!err) {
+ context.identity = identity; /* used by kim_ui_prompter */
}
while (!err && !done) {
@@ -307,7 +314,8 @@ kim_error kim_credential_create_new (kim_credential *out_credential,
credential = NULL;
}
- if (options != in_options) { kim_options_free (&options); }
+ if (options != in_options ) { kim_options_free (&options); }
+ if (identity != in_identity) { kim_identity_free (&identity); }
kim_credential_free (&credential);
return check_error (err);