summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 c271740a7..e42ef9965 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];