@@ -135,7 +135,6 @@ @implementation SPDatabaseDocument
135
135
@synthesize processID;
136
136
@synthesize instanceId;
137
137
@synthesize dbTablesTableView = dbTablesTableView;
138
- @synthesize keychainID = keychainID;
139
138
140
139
#pragma mark -
141
140
@@ -4659,7 +4658,8 @@ - (NSDictionary *) stateIncludingDetails:(NSDictionary *)detailsToReturn
4659
4658
}
4660
4659
[connection setObject:connectionType forKey:@"type"];
4661
4660
4662
- if ([[self keychainID] length]) [connection setObject:[self keychainID] forKey:@"kcid"];
4661
+ NSString *kcid = [connectionController connectionKeychainID];
4662
+ if ([kcid length]) [connection setObject:kcid forKey:@"kcid"];
4663
4663
[connection setObject:[self name] forKey:@"name"];
4664
4664
[connection setObject:[self host] forKey:@"host"];
4665
4665
[connection setObject:[self user] forKey:@"user"];
@@ -4860,9 +4860,10 @@ - (BOOL)setState:(NSDictionary *)stateDetails fromFile:(BOOL)spfBased
4860
4860
[connectionController setSslCACertFileLocation:[connection objectForKey:@"sslCACertFileLocation"]];
4861
4861
4862
4862
// Set the keychain details if available
4863
- if ([connection objectForKey:@"kcid"] && [(NSString *)[connection objectForKey:@"kcid"] length]) {
4864
- [self setKeychainID:[connection objectForKey:@"kcid"]];
4865
- [connectionController setConnectionKeychainItemName:[keychain nameForFavoriteName:[connectionController name] id:[self keychainID]]];
4863
+ NSString *kcid = (NSString *)[connection objectForKey:@"kcid"];
4864
+ if ([kcid length]) {
4865
+ [connectionController setConnectionKeychainID:kcid];
4866
+ [connectionController setConnectionKeychainItemName:[keychain nameForFavoriteName:[connectionController name] id:kcid]];
4866
4867
[connectionController setConnectionKeychainItemAccount:[keychain accountForUser:[connectionController user] host:[connectionController host] database:[connection objectForKey:@"database"]]];
4867
4868
}
4868
4869
@@ -4894,8 +4895,8 @@ - (BOOL)setState:(NSDictionary *)stateDetails fromFile:(BOOL)spfBased
4894
4895
if ([connection objectForKey:@"ssh_password"])
4895
4896
[connectionController setSshPassword:[connection objectForKey:@"ssh_password"]];
4896
4897
else {
4897
- if ([connection objectForKey:@" kcid"] && [(NSString *)[connection objectForKey:@"kcid"] length]) {
4898
- [connectionController setConnectionSSHKeychainItemName:[keychain nameForSSHForFavoriteName:[connectionController name] id:[self keychainID] ]];
4898
+ if ([kcid length]) {
4899
+ [connectionController setConnectionSSHKeychainItemName:[keychain nameForSSHForFavoriteName:[connectionController name] id:kcid ]];
4899
4900
[connectionController setConnectionSSHKeychainItemAccount:[keychain accountForSSHUser:[connectionController sshUser] sshHost:[connectionController sshHost]]];
4900
4901
}
4901
4902
NSString *sshpw = [self keychainPasswordForSSHConnection:nil];
@@ -7148,25 +7149,10 @@ - (NSString *)keychainPasswordForConnection:(SPMySQLConnection *)connection auth
7148
7149
- (NSString *)keychainPasswordForSSHConnection:(SPMySQLConnection *)connection
7149
7150
{
7150
7151
// If no keychain item is available, return an empty password
7151
- if (![connectionController connectionKeychainItemName]) return @"";
7152
+ NSString *password = [connectionController keychainPasswordForSSH];
7153
+ if (!password) return @"";
7152
7154
7153
- // Otherwise, pull the password from the keychain using the details from this connection
7154
- SPKeychain *keychain = [[SPKeychain alloc] init];
7155
-
7156
- NSString *connectionSSHKeychainItemName = [[keychain nameForSSHForFavoriteName:[connectionController name] id:[self keychainID]] retain];
7157
- NSString *connectionSSHKeychainItemAccount = [[keychain accountForSSHUser:[connectionController sshUser] sshHost:[connectionController sshHost]] retain];
7158
- NSString *sshPassword = [keychain getPasswordForName:connectionSSHKeychainItemName account:connectionSSHKeychainItemAccount];
7159
-
7160
- if (!sshPassword || ![sshPassword length]) {
7161
- sshPassword = @"";
7162
- }
7163
-
7164
- if (connectionSSHKeychainItemName) [connectionSSHKeychainItemName release];
7165
- if (connectionSSHKeychainItemAccount) [connectionSSHKeychainItemAccount release];
7166
-
7167
- [keychain release];
7168
-
7169
- return sshPassword;
7155
+ return password;
7170
7156
}
7171
7157
7172
7158
/**
@@ -7729,7 +7715,6 @@ - (void)dealloc
7729
7715
if (spfPreferences) SPClear(spfPreferences);
7730
7716
if (spfSession) SPClear(spfSession);
7731
7717
if (spfDocData) SPClear(spfDocData);
7732
- [self setKeychainID:nil];
7733
7718
if (mainToolbar) SPClear(mainToolbar);
7734
7719
if (titleAccessoryView) SPClear(titleAccessoryView);
7735
7720
if (taskProgressWindow) SPClear(taskProgressWindow);
0 commit comments