summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJustin Anderson <jander@mit.edu>2008-10-14 19:49:27 +0000
committerJustin Anderson <jander@mit.edu>2008-10-14 19:49:27 +0000
commit9f48bdb9311315d054286e98a207ed061428ed6f (patch)
tree33d8d19f7a30954a34b9dfeffb725e4182278843 /src
parent4064fdeabc88ee5d45d64c8c3fc57e1393e529a3 (diff)
downloadkrb5-9f48bdb9311315d054286e98a207ed061428ed6f.tar.gz
krb5-9f48bdb9311315d054286e98a207ed061428ed6f.tar.xz
krb5-9f48bdb9311315d054286e98a207ed061428ed6f.zip
Pre-populate new clients with default client identity if that is set, as found by kim_preferences_get_client_identity()
ticket:6183 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20869 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/kim/agent/mac/IPCClient.m22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/kim/agent/mac/IPCClient.m b/src/kim/agent/mac/IPCClient.m
index e42ef9965..e422dc64d 100644
--- a/src/kim/agent/mac/IPCClient.m
+++ b/src/kim/agent/mac/IPCClient.m
@@ -71,12 +71,34 @@ enum krb_agent_client_state {
{
self = [super init];
if (self != nil) {
+ kim_error err = KIM_NO_ERROR;
+ kim_preferences prefs = NULL;
+ kim_identity identity = NULL;
+ kim_string identity_string = NULL;
+
self.state = ipc_client_state_init;
self.selectController = [[[SelectIdentityController alloc] init] autorelease];
self.authController = [[[AuthenticationController alloc] init] autorelease];
self.selectController.associatedClient = self;
self.authController.associatedClient = self;
self.currentInfo = [NSMutableDictionary dictionary];
+
+ // pre-populate the identity_string if there's a default identity
+ err = kim_preferences_create(&prefs);
+ if (!err && prefs) {
+ err = kim_preferences_get_client_identity(prefs, &identity);
+ }
+ if (!err && identity) {
+ err = kim_identity_get_display_string(identity, &identity_string);
+ }
+ if (!err && identity_string) {
+ [self.currentInfo setObject:[NSString stringWithUTF8String:identity_string]
+ forKey:@"identity_string"];
+ }
+
+ kim_string_free(&identity_string);
+ kim_identity_free(&identity);
+ kim_preferences_free(&prefs);
}
return self;
}