Changeset 8127


Ignore:
Timestamp:
Apr 3, 2009, 4:29:27 AM (13 years ago)
Author:
livings124
Message:

#1969 separate picking a random port from choosing a random port at startup

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/remote.c

    r8125 r8127  
    423423            case 'P':
    424424                tr_bencDictAddStr( &top, "method", "session-set" );
    425                 tr_bencDictAddBool( args, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, TRUE);
     425                tr_bencDictAddBool( args, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, TRUE);
    426426                break;
    427427
  • trunk/doc/rpc-spec.txt

    r8126 r8127  
    370370   "pex-enabled"              | 'boolean'  true means allow pex in public torrents
    371371   "peer-port"                | number     port number
    372    "peer-port-random-enabled" | 'boolean'  true means pick a random peer port on launch
     372   "peer-port-random-on-start"| 'boolean'  true means pick a random peer port on launch
    373373   "port-forwarding-enabled"  | 'boolean'  true means enabled
    374374   "rpc-version"              | number     the current RPC API version
  • trunk/gtk/main.c

    r8097 r8127  
    940940        tr_setMessageLevel( pref_int_get( key ) );
    941941    }
    942     else if( !strcmp( key, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED ) )
     942    else if( !strcmp( key, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START ) )
    943943    {
    944944        /* FIXME */
  • trunk/libtransmission/rpcimpl.c

    r8126 r8127  
    971971    if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_PEX_ENABLED, &boolVal ) )
    972972        tr_sessionSetPexEnabled( session, boolVal );
    973     if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, &boolVal ) && boolVal )
    974         tr_sessionSetPeerPortRandom( session );
    975     else if( tr_bencDictFindInt( args_in, TR_PREFS_KEY_PEER_PORT, &i ) )
     973    if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, &boolVal ) )
     974        tr_sessionSetPeerPortRandomOnStart( session, boolVal );
     975    if( tr_bencDictFindInt( args_in, TR_PREFS_KEY_PEER_PORT, &i ) )
    976976        tr_sessionSetPeerPort( session, i );
    977977    if( tr_bencDictFindBool( args_in, TR_PREFS_KEY_PORT_FORWARDING, &boolVal ) )
     
    10771077    tr_bencDictAddBool( d, TR_PREFS_KEY_PEX_ENABLED, tr_sessionIsPexEnabled( s ) );
    10781078    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT, tr_sessionGetPeerPort( s ) );
     1079    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, tr_sessionGetPeerPortRandomOnStart( s ) );
    10791080    tr_bencDictAddBool( d, TR_PREFS_KEY_PORT_FORWARDING, tr_sessionIsPortForwardingEnabled( s ) );
    10801081    tr_bencDictAddInt ( d, "rpc-version", 4 );
  • trunk/libtransmission/session.c

    r8122 r8127  
    255255    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_LIMIT_TORRENT,       atoi( TR_DEFAULT_PEER_LIMIT_TORRENT_STR ) );
    256256    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT,                atoi( TR_DEFAULT_PEER_PORT_STR ) );
    257     tr_bencDictAddBool( d, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, FALSE );
     257    tr_bencDictAddBool( d, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, FALSE );
    258258    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT_RANDOM_LOW,     1024 );
    259259    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT_RANDOM_HIGH,    65535 );
     
    309309    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_LIMIT_TORRENT,       s->peerLimitPerTorrent );
    310310    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT,                tr_sessionGetPeerPort( s ) );
    311     tr_bencDictAddBool( d, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, s->isPortRandom );
     311    tr_bencDictAddBool( d, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, s->isPortRandom );
    312312    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT_RANDOM_LOW,     s->randomPortLow );
    313313    tr_bencDictAddInt ( d, TR_PREFS_KEY_PEER_PORT_RANDOM_HIGH,    s->randomPortHigh );
     
    590590    **/
    591591
    592     found = tr_bencDictFindBool( &settings, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, &boolVal );
     592    found = tr_bencDictFindBool( &settings, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, &boolVal );
    593593    assert( found );
    594594    session->isPortRandom = boolVal;
     
    794794    assert( tr_isSession( session ) );
    795795
    796     session->isPortRandom = FALSE;
    797796    session->peerPort = port;
    798797    setPortImpl( session, session->peerPort );
     
    800799
    801800tr_port
     801tr_sessionGetPeerPort( const tr_session * session )
     802{
     803    assert( tr_isSession( session ) );
     804
     805    return session->peerPort;
     806}
     807
     808tr_port
    802809tr_sessionSetPeerPortRandom( tr_session * session )
    803810{
    804811    assert( tr_isSession( session ) );
    805812
    806     session->isPortRandom = TRUE;
    807813    session->peerPort = getRandomPort( session );
    808814    setPortImpl( session, session->peerPort );
     
    810816}
    811817
    812 tr_port
    813 tr_sessionGetPeerPort( const tr_session * session )
    814 {
    815     assert( tr_isSession( session ) );
    816 
    817     return session->peerPort;
     818void
     819tr_sessionSetPeerPortRandomOnStart( tr_session * session,
     820                                    tr_bool random )
     821{
     822    assert( tr_isSession( session ) );
     823
     824    session->isPortRandom = TRUE;
     825}
     826
     827tr_bool
     828tr_sessionGetPeerPortRandomOnStart( tr_session * session )
     829{
     830    assert( tr_isSession( session ) );
     831
     832    return session->isPortRandom;
    818833}
    819834
  • trunk/libtransmission/transmission.h

    r8123 r8127  
    178178#define TR_PREFS_KEY_PEER_LIMIT_TORRENT         "peer-limit-per-torrent"
    179179#define TR_PREFS_KEY_PEER_PORT                  "peer-port"
    180 #define TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED   "peer-port-random-enabled"
     180#define TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START  "peer-port-random-on-start"
    181181#define TR_PREFS_KEY_PEER_PORT_RANDOM_LOW       "peer-port-random-low"
    182182#define TR_PREFS_KEY_PEER_PORT_RANDOM_HIGH      "peer-port-random-high"
     
    539539                             tr_port       port);
    540540
     541tr_port tr_sessionGetPeerPort( const tr_session * session );
     542
    541543tr_port tr_sessionSetPeerPortRandom( tr_session  * session );
    542544
    543 tr_port tr_sessionGetPeerPort( const tr_session * session );
     545void  tr_sessionSetPeerPortRandomOnStart( tr_session * session,
     546                                          tr_bool random );
     547
     548tr_bool  tr_sessionGetPeerPortRandomOnStart( tr_session * session );
    544549
    545550typedef enum
  • trunk/macosx/Controller.m

    r8122 r8127  
    225225        tr_sessionGetDefaultSettings(&settings);
    226226       
    227         #warning how to work with schedule?
    228227        const BOOL usesSpeedLimitSched = [fDefaults boolForKey: @"SpeedLimitAuto"];
    229228        if (!usesSpeedLimitSched)
     
    255254       
    256255        const BOOL randomPort = [fDefaults boolForKey: @"RandomPort"];
    257         tr_bencDictAddBool(&settings, TR_PREFS_KEY_PEER_PORT_RANDOM_ENABLED, randomPort);
     256        tr_bencDictAddBool(&settings, TR_PREFS_KEY_PEER_PORT_RANDOM_ON_START, randomPort);
    258257        if (!randomPort)
    259258            tr_bencDictAddInt(&settings, TR_PREFS_KEY_PEER_PORT, [fDefaults integerForKey: @"BindPort"]);
  • trunk/macosx/PrefsController.h

    r8098 r8127  
    7171- (void) setPort: (id) sender;
    7272- (void) randomPort: (id) sender;
     73- (void) setRandomPortOnStart: (id) sender;
    7374- (void) setNat: (id) sender;
    7475- (void) updatePortStatus;
  • trunk/macosx/PrefsController.m

    r8098 r8127  
    354354}
    355355
     356- (void) setRandomPortOnStart: (id) sender
     357{
     358    tr_sessionSetPeerPortRandomOnStart(fHandle, [sender state] == NSOnState);
     359}
     360
    356361- (void) setNat: (id) sender
    357362{
  • trunk/macosx/en.lproj/PrefsWindow.xib

    r8098 r8127  
    99                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
    1010                        <bool key="EncodedWithXMLCoder">YES</bool>
    11                         <integer value="153"/>
     11                        <integer value="66"/>
    1212                </object>
    1313                <object class="NSArray" key="IBDocument.PluginDependencies">
     
    33673367                        </object>
    33683368                        <object class="NSCustomView" id="352903881">
    3369                                 <reference key="NSNextResponder"/>
     3369                                <nil key="NSNextResponder"/>
    33703370                                <int key="NSvFlags">256</int>
    33713371                                <object class="NSMutableArray" key="NSSubviews">
     
    39573957                                </object>
    39583958                                <string key="NSFrameSize">{542, 226}</string>
    3959                                 <reference key="NSSuperview"/>
    39603959                                <string key="NSClassName">NSView</string>
    39613960                                <string key="NSExtension">NSResponder</string>
     
    44204419                        </object>
    44214420                        <object class="NSCustomView" id="204700639">
    4422                                 <nil key="NSNextResponder"/>
     4421                                <reference key="NSNextResponder"/>
    44234422                                <int key="NSvFlags">256</int>
    44244423                                <object class="NSMutableArray" key="NSSubviews">
     
    50515050                                </object>
    50525051                                <string key="NSFrameSize">{542, 345}</string>
     5052                                <reference key="NSSuperview"/>
    50535053                                <string key="NSClassName">NSView</string>
    50545054                                <string key="NSExtension">NSResponder</string>
     
    87118711                                        </object>
    87128712                                        <int key="connectionID">1903</int>
     8713                                </object>
     8714                                <object class="IBConnectionRecord">
     8715                                        <object class="IBActionConnection" key="connection">
     8716                                                <string key="label">setRandomPortOnStart:</string>
     8717                                                <reference key="source" ref="511492310"/>
     8718                                                <reference key="destination" ref="200017199"/>
     8719                                        </object>
     8720                                        <int key="connectionID">1904</int>
    87138721                                </object>
    87148722                        </object>
     
    1250012508                        </object>
    1250112509                        <nil key="sourceID"/>
    12502                         <int key="maxID">1903</int>
     12510                        <int key="maxID">1904</int>
    1250312511                </object>
    1250412512                <object class="IBClassDescriber" key="IBDocument.Classes">
     
    1268412692                                                        <string>setRPCUsername:</string>
    1268512693                                                        <string>setRPCWebUIDiscovery:</string>
     12694                                                        <string>setRandomPortOnStart:</string>
    1268612695                                                        <string>setRatioStop:</string>
    1268712696                                                        <string>setSound:</string>
     
    1274312752                                                        <string>id</string>
    1274412753                                                        <string>id</string>
     12754                                                        <string>id</string>
    1274512755                                                </object>
    1274612756                                        </object>
Note: See TracChangeset for help on using the changeset viewer.