]> granicus.if.org Git - transmission/commitdiff
eliminate an unnecessary variable and improve the behavior of the proxy keychain
authorMitchell Livingston <livings124@transmissionbt.com>
Fri, 13 Jun 2008 04:05:54 +0000 (04:05 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Fri, 13 Jun 2008 04:05:54 +0000 (04:05 +0000)
macosx/Controller.m
macosx/PrefsController.h
macosx/PrefsController.m

index 1e6789ac29ce083dcf17885203fd5ea2fdfda58e..3eb0dc8b3ffb6e5e9e82643cbdf12917ae2e59dd 100644 (file)
@@ -228,7 +228,7 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
                                 TR_DEFAULT_PROXY_TYPE, /* reset in prefs */
                                 [fDefaults boolForKey: @"ProxyAuthorize"],
                                 [[fDefaults stringForKey: @"ProxyUsername"] UTF8String],
-                                NULL); /* reset in prefs - from Keychain */
+                                ""); /* reset in prefs - from Keychain (leave blank instead of NULL) */
         
         [NSApp setDelegate: self];
         
index daa23b01f75e17d96cffa598fcc5a355219c472c..b3ae5aa3741fe38792e4dd1dbac90e965e9381df 100644 (file)
@@ -59,7 +59,6 @@
     
     IBOutlet NSTextField * fProxyAddressField, * fProxyPasswordField;
     IBOutlet NSPopUpButton * fProxyTypePopUp;
-    NSString * fProxyPassword;
     BOOL fProxyPasswordSet;
     
     IBOutlet NSTextField * fRPCPortField;
index 95a1821fb6a88ead8a238628066809fbdbbc0479..8f4fc3b99de1492a93f5334f169f743236fa1435 100644 (file)
         [self updateProxyType];
         
         fProxyPasswordSet = NO;
-        if ([fProxyPasswordField isEnabled])
+        if ([fDefaults boolForKey: @"Proxy"] && [fDefaults boolForKey: @"ProxyAuthorize"])
             [self updateProxyPassword];
         
         //update rpc access list
         [fPortChecker release];
     }
     
-    [fProxyPassword release];
-    
     [fRPCAccessArray release];
     
     [super dealloc];
             proxyType = PROXY_HTTP;
     }
     [fProxyTypePopUp selectItemAtIndex: proxyType];
-    [fProxyPasswordField setStringValue: fProxyPassword ? fProxyPassword : @""];
+    [fProxyPasswordField setStringValue: [NSString stringWithUTF8String: tr_sessionGetProxyPassword(fHandle)]];
     
     //set blocklist
     [self updateBlocklistFields];
 
 - (void) setProxyEnabled: (id) sender
 {
+    BOOL enable = [fDefaults boolForKey: @"Proxy"];
     tr_sessionSetProxyEnabled(fHandle, [fDefaults boolForKey: @"Proxy"]);
     
     //if proxy password hasn't be retrieved, get it now
-    if (!fProxyPasswordSet && [fProxyPasswordField isEnabled])
-    {
+    if (!fProxyPasswordSet && enable && [fDefaults boolForKey: @"ProxyAuthorize"])
         [self updateProxyPassword];
-        [fProxyPasswordField setStringValue: fProxyPassword];
-    }
 }
 
 - (void) setProxyAddress: (id) sender
 
 - (void) setProxyAuthorize: (id) sender
 {
-    tr_sessionSetProxyAuthEnabled(fHandle, [fDefaults boolForKey: @"ProxyAuthorize"]);
+    BOOL enable = [fDefaults boolForKey: @"ProxyAuthorize"];
+    tr_sessionSetProxyAuthEnabled(fHandle, enable);
     
     //if proxy password hasn't be retrieved, get it now
-    if (!fProxyPasswordSet && [fProxyPasswordField isEnabled])
-    {
+    if (!fProxyPasswordSet && enable)
         [self updateProxyPassword];
-        [fProxyPasswordField setStringValue: fProxyPassword];
-    }
 }
 
 - (void) setProxyUsername: (id) sender
 
 - (void) setProxyPassword: (id) sender
 {
-    [fProxyPassword release];
-    fProxyPassword = [[sender stringValue] retain];
+    NSString * password = [[sender stringValue] retain];
     
     EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy"
                                             withUsername: @"Proxy"];
     if (keychainItem)
-        [keychainItem setPassword: fProxyPassword];
+        [keychainItem setPassword: password];
     else
         [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission:Proxy" withUsername: @"Proxy"
-            password: fProxyPassword];
+            password: password];
     
-    tr_sessionSetProxyPassword(fHandle, [fProxyPassword UTF8String]);
+    tr_sessionSetProxyPassword(fHandle, [password UTF8String]);
 }
 
 - (void) updateProxyPassword
 {
     fProxyPasswordSet = YES;
     
-    [fProxyPassword release];
-    
+    NSString * password;
     EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy"
                                             withUsername: @"Proxy"];
-    if (!(fProxyPassword = [keychainItem password]))
-        fProxyPassword = @"";
-    [fProxyPassword retain];
+    if (!(password = [keychainItem password]))
+        password = @"";
+    
+    tr_sessionSetProxyPassword(fHandle, [password UTF8String]);
     
-    tr_sessionSetProxyPassword(fHandle, [fProxyPassword UTF8String]);
+    [fProxyPasswordField setStringValue: password];
 }
 
 - (void) setRPCEnabled: (id) sender