TR_DEFAULT_PROXY_TYPE, /* reset in prefs */
[fDefaults boolForKey: @"ProxyAuthorize"],
[[fDefaults stringForKey: @"ProxyUsername"] UTF8String],
- ""); /* reset in prefs - from Keychain (leave blank instead of NULL) */
+ NULL); /* reset in prefs - from Keychain */
[NSApp setDelegate: self];
- (BOOL)setPassword:(NSString *)newPassword;
- (BOOL)setUsername:(NSString *)newUsername;
- (BOOL)setLabel:(NSString *)newLabel;
+
+//added by ML
+- (void)removeFromKeychain;
@end
@interface EMKeychainItem (Private)
return [self modifyAttributeWithTag:kSecLabelItemAttr toBeString:newLabel];
}
+
+- (void)removeFromKeychain
+{
+ SecKeychainItemDelete(coreKeychainItem);
+}
+
@end
@implementation EMKeychainItem (Private)
EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy"
withUsername: @"Proxy"];
if (keychainItem)
- [keychainItem setPassword: password];
+ {
+ if (![password isEqualToString: @""])
+ [keychainItem setPassword: password];
+ else
+ [keychainItem removeFromKeychain];
+ }
else
- [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission:Proxy" withUsername: @"Proxy"
- password: password];
+ {
+ if (![password isEqualToString: @""])
+ [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission:Proxy" withUsername: @"Proxy"
+ password: password];
+ }
tr_sessionSetProxyPassword(fHandle, [password UTF8String]);
}