]> granicus.if.org Git - transmission/commitdiff
#1559 Simplify tr_sessionInitFull - Mac client
authorMitchell Livingston <livings124@transmissionbt.com>
Sun, 14 Dec 2008 00:31:33 +0000 (00:31 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Sun, 14 Dec 2008 00:31:33 +0000 (00:31 +0000)
libtransmission/transmission.h
macosx/Controller.m
macosx/Defaults.plist

index ab2f685ed85f8e8511650f8be0e4183e4d79dc9c..e2ae6ff3896a3394cc1c8abae8ebb828d5cd1dd1 100644 (file)
@@ -91,10 +91,10 @@ typedef tr_handle tr_session;
 /**
  * @addtogroup tr_session Session
  *
- * A libtransmission session is created by calling either tr_sessionInit()
- * or tr_sessionInit().  libtransmission creates a thread for itself so that
- * it can operate independently of the caller's event loop.  The session will
- * continue until tr_sessionClose() is called.
+ * A libtransmission session is created by calling tr_sessionInit().
+ * libtransmission creates a thread for itself so that it can operate
+ * independently of the caller's event loop.  The session will  continue
+ * until tr_sessionClose() is called.
  *
  * @{
  */
@@ -236,7 +236,7 @@ void tr_sessionSaveSettings( tr_session     * session,
  *     tr_bencFree( &settings );
  * @encode
  *
- * @param tag "gtk", "mac", "daemon", etc... this is only for pre-1.30 resume files
+ * @param tag "gtk", "macosx", "daemon", etc... this is only for pre-1.30 resume files
  * @param configDir where Transmission will look for resume files, blocklists, etc.
  * @param messageQueueingEnabled if false, messages will be dumped to stderr
  * @param settings libtransmission settings
index fb682ea86849c9c5888c476d6196236e6fd7a858..9c3103a27cb97f8e00d19891cb3612c2914c67f5 100644 (file)
@@ -48,6 +48,7 @@
 #import "ExpandedPathToPathTransformer.h"
 #import "ExpandedPathToIconTransformer.h"
 #import "SpeedLimitToTurtleIconTransformer.h"
+#import "bencode.h"
 #import "utils.h"
 
 #import "UKKQueue.h"
@@ -207,38 +208,44 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
     {
         fDefaults = [NSUserDefaults standardUserDefaults];
         
-        fLib = tr_sessionInitFull(NULL, /* use default config directory (Application Support) */
-                                "macosx",
-#warning update when changing in prefs 
-                                [[[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath] UTF8String],
-                                [fDefaults boolForKey: @"PEXGlobal"],
-                                [fDefaults boolForKey: @"NatTraversal"],
-                                [fDefaults boolForKey: @"RandomPort"] ? -1 : [fDefaults integerForKey: @"BindPort"],
-                                TR_DEFAULT_ENCRYPTION, /* reset in prefs */
-                                TR_DEFAULT_LAZY_BITFIELD_ENABLED,
-                                NO, /* reset in prefs */
-                                -1, /* reset in prefs */
-                                NO, /* reset in prefs */
-                                -1, /* reset in prefs */
-                                [fDefaults integerForKey: @"PeersTotal"],
-                                [fDefaults integerForKey: @"MessageLevel"],
-                                YES,
-                                [fDefaults boolForKey: @"Blocklist"],
-                                [fDefaults integerForKey: @"PeerSocketTOS"], /* hidden pref - default is TR_DEFAULT_PEER_SOCKET_TOS */
-                                [fDefaults boolForKey: @"RPC"],
-                                [fDefaults integerForKey: @"RPCPort"],
-                                [fDefaults boolForKey: @"RPCUseWhitelist"],
-                                NULL, /* reset in prefs */
-                                [fDefaults boolForKey: @"RPCAuthorize"],
-                                [[fDefaults stringForKey: @"RPCUsername"] UTF8String],
-                                "", /* reset in prefs - from Keychain */
-                                [fDefaults boolForKey: @"Proxy"],
-                                [[fDefaults stringForKey: @"ProxyAddress"] UTF8String],
-                                [fDefaults integerForKey: @"ProxyPort"],
-                                TR_DEFAULT_PROXY_TYPE, /* reset in prefs */
-                                [fDefaults boolForKey: @"ProxyAuthorize"],
-                                [[fDefaults stringForKey: @"ProxyUsername"] UTF8String],
-                                ""); /* reset in prefs - from Keychain */
+        tr_benc settings;
+        tr_bencInitDict(&settings, 21);
+        tr_sessionGetDefaultSettings(&settings);
+        
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_BLOCKLIST_ENABLED, [fDefaults boolForKey: @"Blocklist"]);
+        
+        #warning update when changing in prefs
+        tr_bencDictAddStr(&settings, TR_PREFS_KEY_DOWNLOAD_DIR, [[[fDefaults stringForKey: @"DownloadFolder"]
+                                                                    stringByExpandingTildeInPath] UTF8String]);
+        
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_MSGLEVEL, [fDefaults boolForKey: @"MessageLevel"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_LIMIT_GLOBAL, [fDefaults integerForKey: @"PeersTotal"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_LIMIT_TORRENT, [fDefaults integerForKey: @"PeersTorrent"]);
+        
+        const BOOL randomPort = [fDefaults boolForKey: @"RandomPort"];
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, randomPort);
+        if (!randomPort)
+            tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_PORT, [fDefaults integerForKey: @"BindPort"]);
+        
+        //hidden pref
+        if ([fDefaults objectForKey: @"PeerSocketTOS"])
+            tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_SOCKET_TOS, [fDefaults integerForKey: @"PeerSocketTOS"]);
+        
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEX_ENABLED, [fDefaults boolForKey: @"PEXGlobal"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PORT_FORWARDING, [fDefaults boolForKey: @"NatTraversal"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PROXY_AUTH_ENABLED, [fDefaults boolForKey: @"ProxyAuthorize"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PROXY_ENABLED, [fDefaults boolForKey: @"Proxy"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_PROXY_PORT, [fDefaults integerForKey: @"ProxyPort"]);
+        tr_bencDictAddStr(&settings, TR_PREFS_KEY_PROXY, [[fDefaults stringForKey: @"ProxyAddress"] UTF8String]);
+        tr_bencDictAddStr(&settings, TR_PREFS_KEY_PROXY_USERNAME,  [[fDefaults stringForKey: @"ProxyUsername"] UTF8String]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED,  [fDefaults boolForKey: @"RPCAuthorize"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_RPC_ENABLED,  [fDefaults boolForKey: @"RPC"]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_RPC_PORT,  [fDefaults integerForKey: @"RPCPort"]);
+        tr_bencDictAddStr(&settings, TR_PREFS_KEY_RPC_USERNAME,  [[fDefaults stringForKey: @"RPCUsername"] UTF8String]);
+        tr_bencDictAddInt(&settings, TR_PREFS_KEY_RPC_WHITELIST_ENABLED,  [fDefaults boolForKey: @"RPCUseWhitelist"]);
+        
+        fLib = tr_sessionInit("macosx", tr_getDefaultConfigDir("Transmission"), YES, &settings);
+        tr_bencFree(&settings);
         
         [NSApp setDelegate: self];
         
index a443757226501f98077ff716b94cc836d6907ca0..be7c0f97ae5e3b42160204abb7c5d1c7bb818bfe 100644 (file)
@@ -86,8 +86,6 @@
        <true/>
        <key>PEXGlobal</key>
        <true/>
-       <key>PeerSocketTOS</key>
-       <integer>8</integer>
        <key>PeersTorrent</key>
        <integer>60</integer>
        <key>PeersTotal</key>