]> granicus.if.org Git - transmission/commitdiff
put some of the keychain code into methods for future expandability
authorMitchell Livingston <livings124@transmissionbt.com>
Fri, 13 Jun 2008 18:47:38 +0000 (18:47 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Fri, 13 Jun 2008 18:47:38 +0000 (18:47 +0000)
macosx/PrefsController.m

index cfd38b8bd48381298578ddd51a1c1bc9859ce3ec..33650ddd48bdc2ecc00059e39aa59cba7d50f8f2 100644 (file)
@@ -51,6 +51,9 @@
 #define TOOLBAR_NETWORK     @"TOOLBAR_NETWORK"
 #define TOOLBAR_REMOTE      @"TOOLBAR_REMOTE"
 
+#define PROXY_KEYCHAIN_SERVICE  @"Transmission:Proxy"
+#define PROXY_KEYCHAIN_NAME     @"Proxy"
+
 @interface PrefsController (Private)
 
 - (void) setPrefView: (id) sender;
@@ -59,6 +62,8 @@
 - (void) incompleteFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info;
 - (void) importFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info;
 
+- (void) setKeychainPassword: (NSString *) password forService: (NSString *) service username: (NSString *) username;
+
 @end
 
 @implementation PrefsController
 - (void) setProxyPassword: (id) sender
 {
     NSString * password = [[sender stringValue] retain];
-    
-    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy"
-                                            withUsername: @"Proxy"];
-    if (keychainItem)
-    {
-        if (![password isEqualToString: @""])
-            [keychainItem setPassword: password];
-        else
-            [keychainItem removeFromKeychain];
-    }
-    else
-    {
-        if (![password isEqualToString: @""])
-            [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission:Proxy" withUsername: @"Proxy"
-                password: password];
-    }
+    [self setKeychainPassword: password forService: PROXY_KEYCHAIN_SERVICE username: PROXY_KEYCHAIN_NAME];
     
     tr_sessionSetProxyPassword(fHandle, [password UTF8String]);
 }
 - (void) updateProxyPassword
 {
     NSString * password;
-    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy"
-                                            withUsername: @"Proxy"];
+    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: PROXY_KEYCHAIN_SERVICE
+                                            withUsername: PROXY_KEYCHAIN_NAME];
     if (!(password = [keychainItem password]))
         password = @"";
     
     [fImportFolderPopUp selectItemAtIndex: 0];
 }
 
+- (void) setKeychainPassword: (NSString *) password forService: (NSString *) service username: (NSString *) username
+{
+    BOOL shouldAdd = ![password isEqualToString: @""];
+    
+    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: service withUsername: username];
+    if (keychainItem)
+    {
+        if (shouldAdd)
+            [keychainItem setPassword: password];
+        else
+            [keychainItem removeFromKeychain];
+    }
+    else
+    {
+        if (shouldAdd)
+            [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: service withUsername: username password: password];
+    }
+}
+
 @end