kim_credential_create_new should support NULL in_identity.
authorAlexandra Ellwood <lxs@mit.edu>
Mon, 29 Sep 2008 02:40:24 +0000 (02:40 +0000)
committerAlexandra Ellwood <lxs@mit.edu>
Mon, 29 Sep 2008 02:40:24 +0000 (02:40 +0000)
Prompt for it.

ticket: 6055

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20775 dc483132-0cff-0310-8789-dd5450dbe970

src/kim/lib/kim_credential.c

index 8c7a347dfb4637542877421b619061bc6a237292..caafb0e974bc3f199ff183968f10b7f5e8c7366c 100644 (file)
@@ -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);