aboutsummaryrefslogtreecommitdiff
path: root/src/kim
diff options
context:
space:
mode:
authorJustin Anderson <jander@mit.edu>2008-10-14 19:48:06 +0000
committerJustin Anderson <jander@mit.edu>2008-10-14 19:48:06 +0000
commit4064fdeabc88ee5d45d64c8c3fc57e1393e529a3 (patch)
treedbf90f5aba6f55e6f10c7339814cc50e3306b48f /src/kim
parente44f7796e4e4db6b2d4a43820c917e0eea084b03 (diff)
downloadkrb5-4064fdeabc88ee5d45d64c8c3fc57e1393e529a3.zip
krb5-4064fdeabc88ee5d45d64c8c3fc57e1393e529a3.tar.gz
krb5-4064fdeabc88ee5d45d64c8c3fc57e1393e529a3.tar.bz2
Don't wipe out previously entered information with each new call from clients
ticket: 6143 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20868 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kim')
-rw-r--r--src/kim/agent/mac/IPCClient.m15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/kim/agent/mac/IPCClient.m b/src/kim/agent/mac/IPCClient.m
index c271740..e42ef99 100644
--- a/src/kim/agent/mac/IPCClient.m
+++ b/src/kim/agent/mac/IPCClient.m
@@ -76,6 +76,7 @@ enum krb_agent_client_state {
self.authController = [[[AuthenticationController alloc] init] autorelease];
self.selectController.associatedClient = self;
self.authController.associatedClient = self;
+ self.currentInfo = [NSMutableDictionary dictionary];
}
return self;
}
@@ -84,6 +85,9 @@ enum krb_agent_client_state {
{
[self.selectController close];
[self.authController close];
+ self.selectController = nil;
+ self.authController = nil;
+ self.currentInfo = nil;
}
- (void) didCancel
@@ -109,7 +113,7 @@ enum krb_agent_client_state {
- (kim_error) selectIdentity: (NSDictionary *) info
{
- self.currentInfo = [[info mutableCopy] autorelease];
+ [self.currentInfo addEntriesFromDictionary:info];
self.state = ipc_client_state_select;
[self.selectController setContent:self.currentInfo];
@@ -137,13 +141,12 @@ enum krb_agent_client_state {
[KerberosAgentListener didSelectIdentity:self.currentInfo error:0];
// clean up state
- self.currentInfo = nil;
self.state = ipc_client_state_idle;
}
- (kim_error) enterIdentity: (NSDictionary *) info
{
- self.currentInfo = [[info mutableCopy] autorelease];
+ [self.currentInfo addEntriesFromDictionary:info];
self.state = ipc_client_state_enter;
[self.authController setContent:self.currentInfo];
@@ -164,7 +167,7 @@ enum krb_agent_client_state {
- (kim_error) promptForAuth: (NSDictionary *) info
{
- self.currentInfo = [[info mutableCopy] autorelease];
+ [self.currentInfo addEntriesFromDictionary:info];
self.state = ipc_client_state_auth_prompt;
[self.authController setContent:self.currentInfo];
@@ -182,7 +185,7 @@ enum krb_agent_client_state {
- (kim_error) changePassword: (NSDictionary *) info
{
- self.currentInfo = [[info mutableCopy] autorelease];
+ [self.currentInfo addEntriesFromDictionary:info];
self.state = ipc_client_state_change_password;
[self.authController setContent:self.currentInfo];
@@ -204,7 +207,7 @@ enum krb_agent_client_state {
- (kim_error) handleError: (NSDictionary *) info
{
- self.currentInfo = [[info mutableCopy] autorelease];
+ [self.currentInfo addEntriesFromDictionary:info];
self.state = ipc_client_state_handle_error;
[self.authController setContent:self.currentInfo];