diff --git a/Transmission.xcodeproj/project.pbxproj b/Transmission.xcodeproj/project.pbxproj index 1a1777c00..106b94d30 100644 --- a/Transmission.xcodeproj/project.pbxproj +++ b/Transmission.xcodeproj/project.pbxproj @@ -82,6 +82,8 @@ A21282A80CA6C66800EAEE0F /* StatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = A21282A60CA6C66800EAEE0F /* StatusBarView.m */; }; A215760B0C0D449A0057A26A /* NSBezierPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A21576090C0D449A0057A26A /* NSBezierPathAdditions.m */; }; A219798B0D07B78400438EA7 /* GroupToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A219798A0D07B78400438EA7 /* GroupToolbarItem.m */; }; + A21A23740E00B7FF00D424F8 /* EMKeychainProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A23700E00B7FF00D424F8 /* EMKeychainProxy.m */; }; + A21A23750E00B7FF00D424F8 /* EMKeychainItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A21A23720E00B7FF00D424F8 /* EMKeychainItem.m */; }; A21DFF100A292B2B007C5F76 /* Transfers.png in Resources */ = {isa = PBXBuildFile; fileRef = A21DFF0F0A292B2B007C5F76 /* Transfers.png */; }; A22180980D148A71007D09ED /* GroupsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A22180970D148A71007D09ED /* GroupsWindowController.m */; }; A22180B60D148F0F007D09ED /* GroupsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A22180B50D148F0F007D09ED /* GroupsWindow.xib */; }; @@ -183,6 +185,7 @@ A2BE9C520C1E4AF5002D16E6 /* makemeta.c in Sources */ = {isa = PBXBuildFile; fileRef = A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */; }; A2BE9C530C1E4AF7002D16E6 /* makemeta.h in Headers */ = {isa = PBXBuildFile; fileRef = A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */; }; A2BF07910B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A2BF078F0B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.m */; }; + A2C0C2E00E00CCE400D95339 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2C0C2DF0E00CCE400D95339 /* Security.framework */; }; A2C89D600CFCBF57004CC2BC /* ButtonToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C89D5F0CFCBF57004CC2BC /* ButtonToolbarItem.m */; }; A2D0E0490A54A97C003C72CF /* Bandwidth.png in Resources */ = {isa = PBXBuildFile; fileRef = A2D0E0480A54A97C003C72CF /* Bandwidth.png */; }; A2D22A130D65EEE700007D5F /* verify.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D22A100D65EED100007D5F /* verify.c */; }; @@ -483,6 +486,10 @@ A215760A0C0D449A0057A26A /* NSBezierPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSBezierPathAdditions.h; path = macosx/NSBezierPathAdditions.h; sourceTree = ""; }; A21979890D07B78400438EA7 /* GroupToolbarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupToolbarItem.h; path = macosx/GroupToolbarItem.h; sourceTree = ""; }; A219798A0D07B78400438EA7 /* GroupToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GroupToolbarItem.m; path = macosx/GroupToolbarItem.m; sourceTree = ""; }; + A21A23700E00B7FF00D424F8 /* EMKeychainProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EMKeychainProxy.m; path = macosx/EMKeychain/EMKeychainProxy.m; sourceTree = ""; }; + A21A23710E00B7FF00D424F8 /* EMKeychainItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EMKeychainItem.h; path = macosx/EMKeychain/EMKeychainItem.h; sourceTree = ""; }; + A21A23720E00B7FF00D424F8 /* EMKeychainItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EMKeychainItem.m; path = macosx/EMKeychain/EMKeychainItem.m; sourceTree = ""; }; + A21A23730E00B7FF00D424F8 /* EMKeychainProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EMKeychainProxy.h; path = macosx/EMKeychain/EMKeychainProxy.h; sourceTree = ""; }; A21DFF0F0A292B2B007C5F76 /* Transfers.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Transfers.png; path = macosx/Images/Transfers.png; sourceTree = ""; }; A22180960D148A71007D09ED /* GroupsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupsWindowController.h; path = macosx/GroupsWindowController.h; sourceTree = ""; }; A22180970D148A71007D09ED /* GroupsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GroupsWindowController.m; path = macosx/GroupsWindowController.m; sourceTree = ""; }; @@ -652,6 +659,8 @@ A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = makemeta.h; path = libtransmission/makemeta.h; sourceTree = ""; }; A2BF078E0B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SpeedLimitToTurtleIconTransformer.h; path = macosx/SpeedLimitToTurtleIconTransformer.h; sourceTree = ""; }; A2BF078F0B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SpeedLimitToTurtleIconTransformer.m; path = macosx/SpeedLimitToTurtleIconTransformer.m; sourceTree = ""; }; + A2C0C2A90E00CC9300D95339 /* Security.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Security.framework; path = /Users/mitchell/Desktop/Transmission/build/Development/Security.framework; sourceTree = ""; }; + A2C0C2DF0E00CCE400D95339 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = ""; }; A2C89D5F0CFCBF57004CC2BC /* ButtonToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ButtonToolbarItem.m; path = macosx/ButtonToolbarItem.m; sourceTree = ""; }; A2CBDED80D993E4500BB22BC /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = macosx/fr.lproj/AddWindow.xib; sourceTree = ""; }; A2CBDF9E0D9AD08100BB22BC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = macosx/ru.lproj/AddWindow.xib; sourceTree = ""; }; @@ -806,6 +815,7 @@ files = ( 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, 4D3EA0AA08AE13C600EA10C2 /* IOKit.framework in Frameworks */, + A2C0C2E00E00CCE400D95339 /* Security.framework in Frameworks */, 4D1838DD09DEC0E80047D688 /* libtransmission.a in Frameworks */, 4D4B7F6109E055660053C1EB /* libcrypto.0.9.7.dylib in Frameworks */, A24F19080A3A790800C9C145 /* Sparkle.framework in Frameworks */, @@ -814,6 +824,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A2C0C2A70E00CC9300D95339 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; A2DF58230DE4B0EF000795D5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -915,6 +932,7 @@ E1B6FC000C0D72A00015FE4D /* Overlay Window */, E138A9720C04D88F00C5426C /* CTGradient */, E1B6FBEB0C0D70AC0015FE4D /* UKKQueue */, + A21A236F0E00B7DC00D424F8 /* EMKeychain */, A21282A50CA6C66800EAEE0F /* StatusBarView.h */, A21282A60CA6C66800EAEE0F /* StatusBarView.m */, A2ED7D8D0CEF431B00970975 /* FilterButton.h */, @@ -1075,6 +1093,7 @@ children = ( 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 4D3EA0A908AE13C600EA10C2 /* IOKit.framework */, + A2C0C2DF0E00CCE400D95339 /* Security.framework */, 29B97324FDCFA39411CA2CEA /* AppKit.framework */, 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, 29B97325FDCFA39411CA2CEA /* Foundation.framework */, @@ -1212,6 +1231,17 @@ name = CLI; sourceTree = ""; }; + A21A236F0E00B7DC00D424F8 /* EMKeychain */ = { + isa = PBXGroup; + children = ( + A21A23700E00B7FF00D424F8 /* EMKeychainProxy.m */, + A21A23710E00B7FF00D424F8 /* EMKeychainItem.h */, + A21A23720E00B7FF00D424F8 /* EMKeychainItem.m */, + A21A23730E00B7FF00D424F8 /* EMKeychainProxy.h */, + ); + name = EMKeychain; + sourceTree = ""; + }; A234D0D40C79FB6000A82373 /* Additions */ = { isa = PBXGroup; children = ( @@ -1451,6 +1481,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A2C0C2A40E00CC9300D95339 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; A2DF58210DE4B0EF000795D5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1567,6 +1604,24 @@ productReference = 8D1107320486CEB800E47090 /* Transmission.app */; productType = "com.apple.product-type.application"; }; + A2C0C2A80E00CC9300D95339 /* Security */ = { + isa = PBXNativeTarget; + buildConfigurationList = A2C0C2BF0E00CC9300D95339 /* Build configuration list for PBXNativeTarget "Security" */; + buildPhases = ( + A2C0C2A40E00CC9300D95339 /* Headers */, + A2C0C2A50E00CC9300D95339 /* Resources */, + A2C0C2A60E00CC9300D95339 /* Sources */, + A2C0C2A70E00CC9300D95339 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Security; + productName = Security; + productReference = A2C0C2A90E00CC9300D95339 /* Security.framework */; + productType = "com.apple.product-type.framework"; + }; A2DF58240DE4B0EF000795D5 /* shttpd */ = { isa = PBXNativeTarget; buildConfigurationList = A2DF584A0DE4B15A000795D5 /* Build configuration list for PBXNativeTarget "shttpd" */; @@ -1694,6 +1749,7 @@ A2DF58240DE4B0EF000795D5 /* shttpd */, BE1183470CE160960002D0F3 /* miniupnp */, 3C7A118C0D0B2EB800B5701F /* natpmp */, + A2C0C2A80E00CC9300D95339 /* Security */, ); }; /* End PBXProject section */ @@ -1797,6 +1853,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A2C0C2A50E00CC9300D95339 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BEFC1CA00C077F1200B0BB3C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1958,6 +2021,15 @@ A2DF57740DE46A6A000795D5 /* QuickLookController.m in Sources */, A2725B6E0DE5C4F5003445E7 /* FileListNode.m in Sources */, A2725D5D0DE7507C003445E7 /* TrackerTableView.m in Sources */, + A21A23740E00B7FF00D424F8 /* EMKeychainProxy.m in Sources */, + A21A23750E00B7FF00D424F8 /* EMKeychainItem.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A2C0C2A60E00CC9300D95339 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2505,6 +2577,84 @@ }; name = "Release - Debug"; }; + A2C0C2BC0E00CC9300D95339 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "Security-Info.plist"; + INSTALL_PATH = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = Security; + ZERO_LINK = NO; + }; + name = Release; + }; + A2C0C2BD0E00CC9300D95339 /* Release - Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "Security-Info.plist"; + INSTALL_PATH = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = Security; + }; + name = "Release - Debug"; + }; + A2C0C2BE0E00CC9300D95339 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "Security-Info.plist"; + INSTALL_PATH = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = Security; + }; + name = Development; + }; A2DF58260DE4B0EF000795D5 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2714,6 +2864,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Development; }; + A2C0C2BF0E00CC9300D95339 /* Build configuration list for PBXNativeTarget "Security" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A2C0C2BC0E00CC9300D95339 /* Release */, + A2C0C2BD0E00CC9300D95339 /* Release - Debug */, + A2C0C2BE0E00CC9300D95339 /* Development */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Development; + }; A2DF584A0DE4B15A000795D5 /* Build configuration list for PBXNativeTarget "shttpd" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 6ae61f9a4..8ef0bdfbc 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -760,20 +760,22 @@ //don't allow passwords to be set if no user name if ([username isEqualToString: @""]) { - NSBeep(); - [fProxyPasswordField setStringValue: @""]; + [sender setStringValue: @""]; + + [fProxyPassword release]; + fProxyPassword = [@"" retain]; return; } [fProxyPassword release]; fProxyPassword = [[sender stringValue] retain]; - EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission Proxy" + EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy" withUsername: username]; if (keychainItem) [keychainItem setPassword: fProxyPassword]; else - [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission Proxy" withUsername: username + [[EMKeychainProxy sharedProxy] addGenericKeychainItemForService: @"Transmission:Proxy" withUsername: username password: fProxyPassword]; tr_sessionSetProxyPassword(fHandle, [fProxyPassword UTF8String]); @@ -787,7 +789,7 @@ if (![username isEqualToString: @""]) { - EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission Proxy" + EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: @"Transmission:Proxy" withUsername: [fDefaults stringForKey: @"ProxyUsername"]]; if (!(fProxyPassword = [keychainItem password])) fProxyPassword = @"";