Changeset 4311
- Timestamp:
- Dec 24, 2007, 7:02:40 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/main.c
r4306 r4311 658 658 initializeFromPrefs( struct cbdata * cbdata ) 659 659 { 660 size_t i; 661 const char * keys[] = 662 { 663 PREF_KEY_PORT, 664 PREF_KEY_DL_LIMIT_ENABLED, 665 PREF_KEY_DL_LIMIT, 666 PREF_KEY_UL_LIMIT_ENABLED, 667 PREF_KEY_UL_LIMIT, 668 PREF_KEY_NAT, 669 PREF_KEY_PEX, 670 PREF_KEY_SYSTRAY, 671 PREF_KEY_ENCRYPTED_ONLY 672 }; 673 674 for( i=0; i<G_N_ELEMENTS(keys); ++i ) 675 prefschanged( NULL, keys[i], cbdata ); 660 prefschanged( NULL, PREF_KEY_SYSTRAY, cbdata ); 676 661 } 677 662 -
trunk/gtk/tr_core.c
r4284 r4311 324 324 tr_core_init( GTypeInstance * instance, gpointer g_class SHUTUP ) 325 325 { 326 tr_handle * h; 326 327 TrCore * self = (TrCore *) instance; 327 328 GtkListStore * store; … … 338 339 }; 339 340 341 h = tr_initFull( "gtk", 342 pref_flag_get( PREF_KEY_PEX ), 343 pref_flag_get( PREF_KEY_NAT ), 344 pref_int_get( PREF_KEY_PORT ), 345 pref_flag_get( PREF_KEY_ENCRYPTED_ONLY ) 346 ? TR_ENCRYPTION_REQUIRED 347 : TR_ENCRYPTION_PREFERRED, 348 pref_flag_get( PREF_KEY_UL_LIMIT_ENABLED ), 349 pref_int_get( PREF_KEY_UL_LIMIT ), 350 pref_flag_get( PREF_KEY_DL_LIMIT_ENABLED ), 351 pref_int_get( PREF_KEY_DL_LIMIT ), 352 pref_int_get( PREF_KEY_MAX_PEERS_GLOBAL ) ); 353 340 354 /* create the model used to store torrent data */ 341 355 g_assert( ALEN( types ) == MC_ROW_COUNT ); … … 343 357 344 358 self->model = GTK_TREE_MODEL( store ); 345 self->handle = tr_init( "gtk" );359 self->handle = h; 346 360 self->nextid = 1; 347 361 self->quitting = FALSE; -
trunk/libtransmission/fdlimit.c
r4255 r4311 87 87 enum 88 88 { 89 TR_MAX_PEER_SOCKETS = 512,90 91 89 TR_MAX_OPEN_FILES = 16, /* real files, not sockets */ 92 90 … … 453 451 454 452 void 455 tr_fdInit( void)456 { 457 int i, j, s[TR_MAX_PEER_SOCKETS];453 tr_fdInit( int globalPeerLimit ) 454 { 455 int i, j, *s; 458 456 459 457 assert( gFd == NULL ); … … 462 460 gFd->lock = tr_lockNew( ); 463 461 462 s = tr_new( int, globalPeerLimit ); 463 464 464 /* count the max number of sockets we can use */ 465 for( i=0; i< TR_MAX_PEER_SOCKETS; ++i )465 for( i=0; i<globalPeerLimit; ++i ) 466 466 if( ( s[i] = socket( AF_INET, SOCK_STREAM, 0 ) ) < 0 ) 467 467 break; … … 475 475 for( i=0; i<TR_MAX_OPEN_FILES; ++i ) 476 476 gFd->open[i].fd = -1; 477 477 478 tr_free( s ); 478 479 } 479 480 … … 503 504 tr_fdGetPeerLimit( void ) 504 505 { 505 return gFd ? gFd->normalMax : TR_MAX_PEER_SOCKETS;506 } 506 return gFd ? gFd->normalMax : -1; 507 } -
trunk/libtransmission/fdlimit.h
r4255 r4311 30 30 * Detect the maximum number of open files and initializes things. 31 31 **********************************************************************/ 32 void tr_fdInit( void);32 void tr_fdInit( int globalPeerLimit ); 33 33 34 34 void tr_fdClose( void ); -
trunk/libtransmission/shared.c
r4102 r4311 169 169 170 170 tr_shared * 171 tr_sharedInit( tr_handle * h )171 tr_sharedInit( tr_handle * h, int isEnabled, int publicPort ) 172 172 { 173 173 tr_shared * s = tr_new0( tr_shared, 1 ); 174 174 175 175 s->h = h; 176 s->publicPort = -1;176 s->publicPort = publicPort; 177 177 s->bindPort = -1; 178 178 s->bindSocket = -1; … … 180 180 s->upnp = tr_upnpInit(); 181 181 s->pulseTimer = tr_timerNew( h, sharedPulse, s, 500 ); 182 s->isEnabled = 0;182 s->isEnabled = isEnabled ? 1 : 0; 183 183 s->natStatus = TR_NAT_TRAVERSAL_UNMAPPED; 184 184 -
trunk/libtransmission/shared.h
r4092 r4311 30 30 typedef struct tr_shared tr_shared; 31 31 32 tr_shared* tr_sharedInit ( tr_handle * );32 tr_shared* tr_sharedInit ( tr_handle *, int isEnabled, int publicPort ); 33 33 void tr_sharedShuttingDown ( tr_shared * ); 34 34 void tr_sharedSetPort ( tr_shared *, int publicPort ); -
trunk/libtransmission/transmission.c
r4306 r4311 104 104 ***/ 105 105 106 107 /*********************************************************************** 108 * tr_init 109 *********************************************************************** 110 * Allocates a tr_handle structure and initializes a few things 111 **********************************************************************/ 112 tr_handle * tr_init( const char * tag ) 106 tr_handle * 107 tr_initFull( const char * tag, 108 int isPexEnabled, 109 int isNatEnabled, 110 int publicPort, 111 int encryptionMode, 112 int isUploadLimitEnabled, 113 int uploadLimit, 114 int isDownloadLimitEnabled, 115 int downloadLimit, 116 int globalPeerLimit ) 113 117 { 114 118 tr_handle * h; … … 119 123 #endif 120 124 121 tr_msgInit( );125 tr_msgInit( ); 122 126 123 127 h = tr_new0( tr_handle, 1 ); 124 if( !h )125 return NULL;126 127 128 h->lock = tr_lockNew( ); 128 h->isPexEnabled = 1;129 h->encryptionMode = TR_ENCRYPTION_PREFERRED;129 h->isPexEnabled = isPexEnabled ? 1 : 0; 130 h->encryptionMode = encryptionMode; 130 131 131 132 tr_netInit(); /* must go before tr_eventInit */ … … 144 145 145 146 /* Initialize rate and file descripts controls */ 146 h->upload = tr_rcInit(); 147 148 h->upload = tr_rcInit(); 149 tr_rcSetLimit( h->upload, uploadLimit ); 150 h->useUploadLimit = isUploadLimitEnabled; 151 147 152 h->download = tr_rcInit(); 148 149 tr_fdInit(); 150 h->shared = tr_sharedInit( h ); 153 tr_rcSetLimit( h->download, downloadLimit ); 154 h->useDownloadLimit = isDownloadLimitEnabled; 155 156 tr_fdInit( globalPeerLimit ); 157 h->shared = tr_sharedInit( h, isNatEnabled, publicPort ); 158 h->isPortSet = publicPort >= 0; 151 159 152 160 tr_inf( TR_NAME " " LONG_VERSION_STRING " started" ); … … 155 163 156 164 return h; 165 } 166 167 tr_handle * tr_init( const char * tag ) 168 { 169 return tr_initFull( tag, 170 TRUE, /* pex enabled */ 171 FALSE, /* nat enabled */ 172 -1, /* public port */ 173 TR_ENCRYPTION_PREFERRED, /* encryption mode */ 174 FALSE, /* use upload speed limit? */ 175 -1, /* upload speed limit */ 176 FALSE, /* use download speed limit? */ 177 -1, /* download speed limit */ 178 512 ); /* globalPeerLimit */ 157 179 } 158 180 -
trunk/libtransmission/transmission.h
r4306 r4311 112 112 void tr_close( tr_handle * ); 113 113 114 tr_handle * tr_initFull( const char * tag, 115 int isPexEnabled, 116 int isNatEnabled, 117 int publicPort, 118 int encryptionMode, 119 int isUploadLimitEnabled, 120 int uploadLimit, 121 int isDownloadLimitEnabled, 122 int downloadLimit, 123 int globalPeerLimit ); 124 114 125 115 126 /** -
trunk/libtransmission/upnp.c
r4251 r4311 134 134 if( handle->state == TR_UPNP_MAP ) 135 135 { 136 int err = -1; 136 137 char portStr[16]; 137 138 snprintf( portStr, sizeof(portStr), "%d", port ); 138 139 errno = 0; 139 handle->isMapped = ( handle->urls.controlURL != NULL ) && 140 ( handle->data.servicetype != NULL ) && 141 ( UPNP_AddPortMapping( handle->urls.controlURL, 142 handle->data.servicetype, 143 portStr, portStr, handle->lanaddr, 144 "Transmission", "TCP" ) ); 140 141 if( !handle->urls.controlURL || !handle->data.servicetype ) 142 handle->isMapped = 0; 143 else { 144 err = UPNP_AddPortMapping( handle->urls.controlURL, 145 handle->data.servicetype, 146 portStr, portStr, handle->lanaddr, 147 "Transmission", "TCP" ); 148 handle->isMapped = !err; 149 } 145 150 tr_inf( KEY "Port forwarding via '%s', service '%s'. (local address: %s:%d)", 146 151 handle->urls.controlURL, handle->data.servicetype, handle->lanaddr, port ); … … 150 155 handle->state = TR_UPNP_IDLE; 151 156 } else { 152 tr_err( KEY "Port forwarding failed (errno %d - %s)", errno, strerror(errno) );157 tr_err( KEY "Port forwarding failed with err %d (%d - %s)", err, errno, strerror(errno) ); 153 158 tr_err( KEY "If your router supports UPnP, please make sure UPnP is enabled!" ); 154 159 handle->port = -1;
Note: See TracChangeset
for help on using the changeset viewer.