diff --git a/macosx/Controller.m b/macosx/Controller.m index 70150fad9..e2681aa91 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -203,7 +203,7 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy fLib = tr_sessionInitFull(NULL, /* use default config directory (Application Support) */ "macosx", - NULL, /* download directory set when adding transfers */ + "", /* download directory set when adding transfers */ [fDefaults boolForKey: @"PEXGlobal"], [fDefaults boolForKey: @"NatTraversal"], [fDefaults integerForKey: @"BindPort"], @@ -225,6 +225,7 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy [[fDefaults stringForKey: @"RPCPassword"] UTF8String], [fDefaults boolForKey: @"Proxy"], [[fDefaults stringForKey: @"ProxyAddress"] UTF8String], + TR_DEFAULT_PROXY_TYPE, /* reset in prefs */ [fDefaults boolForKey: @"ProxyAuthorize"], [[fDefaults stringForKey: @"ProxyUsername"] UTF8String], [[fDefaults stringForKey: @"ProxyPassword"] UTF8String]); diff --git a/macosx/Defaults.plist b/macosx/Defaults.plist index e5f0e9420..1d82ed4ee 100644 --- a/macosx/Defaults.plist +++ b/macosx/Defaults.plist @@ -108,6 +108,8 @@ ProxyPassword + ProxyType + HTTP ProxyUsername Queue diff --git a/macosx/English.lproj/Localizable.strings b/macosx/English.lproj/Localizable.strings index f25016944..758114819 100644 Binary files a/macosx/English.lproj/Localizable.strings and b/macosx/English.lproj/Localizable.strings differ diff --git a/macosx/English.lproj/PrefsWindow.xib b/macosx/English.lproj/PrefsWindow.xib index e2f8e3eb5..c12dda99d 100644 --- a/macosx/English.lproj/PrefsWindow.xib +++ b/macosx/English.lproj/PrefsWindow.xib @@ -8,8 +8,6 @@ 352.00 YES - - @@ -361,7 +359,7 @@ NSResponder - + 256 YES @@ -370,6 +368,7 @@ 256 {{13, 10}, {509, 272}} + YES @@ -383,6 +382,7 @@ 256 {{280, 192}, {182, 26}} + YES -2076049856 @@ -486,6 +486,7 @@ 256 {{104, 198}, {174, 17}} + YES 67239424 @@ -502,6 +503,7 @@ 256 {{40, 198}, {62, 17}} + YES 67239424 @@ -518,6 +520,7 @@ 256 {{105, 129}, {188, 18}} + YES 67239424 @@ -540,6 +543,7 @@ 256 {{105, 19}, {181, 18}} + YES 67239424 @@ -562,6 +566,7 @@ 256 {{289, 14}, {182, 26}} + YES -2076049856 @@ -634,6 +639,7 @@ 256 {{36, 20}, {66, 17}} + YES 67239424 @@ -650,6 +656,7 @@ 256 {{105, 172}, {178, 18}} + YES 67239424 @@ -672,6 +679,7 @@ 256 {{286, 167}, {182, 26}} + YES -2076049856 @@ -744,6 +752,7 @@ 256 {{105, 93}, {283, 18}} + YES 67239424 @@ -766,6 +775,7 @@ 256 {{105, 149}, {192, 18}} + YES 67239424 @@ -788,6 +798,7 @@ 256 {{124, 53}, {197, 18}} + YES 67239424 @@ -810,6 +821,7 @@ 256 {{17, 94}, {86, 17}} + YES 67239424 @@ -826,6 +838,7 @@ 256 {{124, 73}, {235, 18}} + YES 67239424 @@ -846,6 +859,7 @@ {{10, 33}, {489, 226}} + Adding @@ -1515,6 +1529,8 @@ {535, 288} + + NSView NSResponder @@ -2118,7 +2134,7 @@ AAABAAAAAQ NSResponder - + 256 YES @@ -2531,7 +2547,6 @@ AAABAAAAAQ {535, 258} - NSView NSResponder @@ -2566,7 +2581,7 @@ AAABAAAAAQ 256 - {{52, 34}, {90, 17}} + {{28, 34}, {90, 17}} YES @@ -2582,7 +2597,7 @@ AAABAAAAAQ 256 - {{145, 33}, {357, 18}} + {{121, 33}, {357, 18}} YES @@ -2605,7 +2620,7 @@ AAABAAAAAQ 1280 - {{317, 253}, {16, 16}} + {{293, 253}, {16, 16}} 28938 1.000000e+02 @@ -2625,7 +2640,7 @@ AAABAAAAAQ NeXT TIFF v4.0 pasteboard type - {{318, 254}, {14, 14}} + {{294, 254}, {14, 14}} YES @@ -2645,7 +2660,7 @@ AAABAAAAAQ 256 - {{132, 253}, {124, 17}} + {{108, 253}, {124, 17}} YES @@ -2661,7 +2676,7 @@ AAABAAAAAQ 256 - {{133, 231}, {171, 18}} + {{109, 231}, {171, 18}} YES @@ -2683,7 +2698,7 @@ AAABAAAAAQ 256 - {{133, 174}, {248, 18}} + {{109, 174}, {248, 18}} YES @@ -2705,7 +2720,7 @@ AAABAAAAAQ 256 - {{261, 251}, {50, 22}} + {{237, 251}, {50, 22}} YES @@ -2771,7 +2786,7 @@ AAABAAAAAQ 256 - {{132, 215}, {238, 14}} + {{108, 215}, {238, 14}} YES @@ -2787,7 +2802,7 @@ AAABAAAAAQ 256 - {{337, 253}, {154, 17}} + {{313, 253}, {154, 17}} YES @@ -2803,7 +2818,7 @@ AAABAAAAAQ 256 - {{69, 254}, {61, 17}} + {{45, 254}, {61, 17}} YES @@ -2819,13 +2834,13 @@ AAABAAAAAQ 256 - {{33, 175}, {97, 17}} + {{62, 175}, {44, 17}} YES 67239424 71303168 - Tracker proxy: + Proxy: @@ -2835,7 +2850,7 @@ AAABAAAAAQ 256 - {{242, 147}, {184, 22}} + {{218, 147}, {184, 22}} YES @@ -2852,7 +2867,7 @@ AAABAAAAAQ 256 - {{174, 73}, {68, 17}} + {{150, 73}, {68, 17}} YES @@ -2868,7 +2883,7 @@ AAABAAAAAQ 256 - {{171, 101}, {71, 17}} + {{147, 101}, {71, 17}} YES @@ -2884,7 +2899,7 @@ AAABAAAAAQ 256 - {{151, 149}, {86, 17}} + {{127, 149}, {86, 17}} YES @@ -2900,7 +2915,7 @@ AAABAAAAAQ 256 - {{152, 125}, {187, 18}} + {{128, 125}, {187, 18}} YES @@ -2922,7 +2937,7 @@ AAABAAAAAQ 256 - {{247, 71}, {179, 22}} + {{223, 71}, {179, 22}} YES @@ -2943,7 +2958,7 @@ AAABAAAAAQ 256 - {{247, 99}, {179, 22}} + {{223, 99}, {179, 22}} YES @@ -2957,6 +2972,71 @@ AAABAAAAAQ + + + 268 + {{407, 145}, {96, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + HTTP + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + SOCKS4 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + SOCKS5 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + {535, 293} @@ -2964,7 +3044,7 @@ AAABAAAAAQ NSResponder - + 256 YES @@ -3332,7 +3412,6 @@ AAABAAAAAQ {{1, 17}, {332, 95}} - 4 @@ -3365,7 +3444,6 @@ AAABAAAAAQ {{1, 0}, {332, 17}} - 4 @@ -3374,7 +3452,6 @@ AAABAAAAAQ {{102, 63}, {349, 113}} - 18 @@ -3476,11 +3553,14 @@ AAABAAAAAQ {535, 403} - NSView NSResponder + + YES + Proxy + YES @@ -5842,6 +5922,38 @@ AAABAAAAAQ 1662 + + + fProxyTypePopUp + + + + 1669 + + + + setProxyType: + + + + 1670 + + + + enabled: values.Proxy + + + + + + enabled: values.Proxy + enabled + values.Proxy + 2 + + + 1671 + @@ -6346,6 +6458,7 @@ AAABAAAAAQ + Network @@ -8074,6 +8187,50 @@ AAABAAAAAQ + + 1663 + + + YES + + + + + + 1664 + + + YES + + + + + + 1665 + + + YES + + + + + + + + 1666 + + + + + 1667 + + + + + 1668 + + + @@ -8246,6 +8403,13 @@ AAABAAAAAQ 1657.ImportedFromIB2 1660.IBPluginDependency 1661.IBPluginDependency + 1663.IBPluginDependency + 1664.IBPluginDependency + 1665.IBEditorWindowLastContentRect + 1665.IBPluginDependency + 1666.IBPluginDependency + 1667.IBPluginDependency + 1668.IBPluginDependency 190.IBPluginDependency 190.ImportedFromIB2 192.IBPluginDependency @@ -8612,6 +8776,13 @@ AAABAAAAAQ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{667, 478}, {123, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -8836,7 +9007,7 @@ AAABAAAAAQ - 1662 + 1671 @@ -8950,6 +9121,7 @@ AAABAAAAAQ setProxyAuthorize: setProxyEnabled: setProxyPassword: + setProxyType: setProxyUsername: setQueue: setQueueNumber: @@ -9009,6 +9181,7 @@ AAABAAAAAQ id id id + id @@ -9033,6 +9206,7 @@ AAABAAAAAQ fPortStatusImage fPortStatusProgress fProxyAddressField + fProxyTypePopUp fQueueDownloadField fQueueSeedField fRPCAccessTable @@ -9066,6 +9240,7 @@ AAABAAAAAQ NSImageView NSProgressIndicator NSTextField + NSPopUpButton NSTextField NSTextField NSTableView diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index 1185022dc..e949de58a 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -57,6 +57,7 @@ NSTimer * fPortStatusTimer; int fPeerPort, fNatStatus; IBOutlet NSTextField * fProxyAddressField; + IBOutlet NSPopUpButton * fProxyTypePopUp; IBOutlet NSTextField * fRPCPortField; IBOutlet NSTableView * fRPCAccessTable; @@ -124,6 +125,8 @@ - (void) setProxyAuthorize: (id) sender; - (void) setProxyUsername: (id) sender; - (void) setProxyPassword: (id) sender; +- (void) setProxyType: (id) sender; +- (void) updateProxyType; - (void) setRPCEnabled: (id) sender; - (void) setRPCAuthorize: (id) sender; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index e2e91006c..a9a46b944 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -31,6 +31,10 @@ #define DOWNLOAD_FOLDER 0 #define DOWNLOAD_TORRENT 2 +#define PROXY_HTTP 0 +#define PROXY_SOCKS4 1 +#define PROXY_SOCKS5 2 + #define RPC_ACCESS_ALLOW 0 #define RPC_ACCESS_DENY 1 @@ -101,6 +105,9 @@ //actually set bandwidth limits [self applySpeedSettings: nil]; + //set proxy type + [self updateProxyType]; + //update rpc access list fRPCAccessArray = [[fDefaults arrayForKey: @"RPCAccessList"] mutableCopy]; if (!fRPCAccessArray) @@ -184,8 +191,21 @@ [fQueueSeedField setIntValue: [fDefaults integerForKey: @"QueueSeedNumber"]]; [fStalledField setIntValue: [fDefaults integerForKey: @"StalledMinutes"]]; - //set proxy address + //set proxy fields [fProxyAddressField setStringValue: [fDefaults stringForKey: @"ProxyAddress"]]; + int proxyType; + switch(tr_sessionGetProxyType(fHandle)) + { + case TR_PROXY_SOCKS4: + proxyType = PROXY_SOCKS4; + break; + case TR_PROXY_SOCKS5: + proxyType = PROXY_SOCKS5; + break; + case TR_PROXY_HTTP: + proxyType = PROXY_HTTP; + } + [fProxyTypePopUp selectItemAtIndex: proxyType]; //set blocklist [self updateBlocklistFields]; @@ -689,6 +709,47 @@ tr_sessionSetProxyPassword(fHandle, [[fDefaults stringForKey: @"ProxyPassword"] UTF8String]); } +- (void) setProxyType: (id) sender +{ + NSString * type; + switch ([sender indexOfSelectedItem]) + { + case PROXY_HTTP: + type = @"HTTP"; + break; + case PROXY_SOCKS4: + type = @"SOCKS4"; + break; + case PROXY_SOCKS5: + type = @"SOCKS5"; + } + + [fDefaults setObject: type forKey: @"ProxyType"]; + [self updateProxyType]; +} + +- (void) updateProxyType +{ + NSString * typeString = [fDefaults stringForKey: @"ProxyType"]; + tr_proxy_type type; + if ([typeString isEqualToString: @"SOCKS4"]) + type = TR_PROXY_SOCKS4; + else if ([typeString isEqualToString: @"SOCKS5"]) + type = TR_PROXY_SOCKS4; + else + { + //safety + if (![typeString isEqualToString: @"HTTP"]) + { + typeString = @"HTTP"; + [fDefaults setObject: typeString forKey: @"ProxyType"]; + } + type = TR_PROXY_HTTP; + } + + tr_sessionSetProxyType(fHandle, type); +} + - (void) setRPCEnabled: (id) sender { tr_sessionSetRPCEnabled(fHandle, [fDefaults boolForKey: @"RPC"]);