more janitorial cleanup on the "tr_session*" namespace. Today's victim: tr_handle_status.
This commit is contained in:
parent
07ae5bf965
commit
7b209acc1b
|
@ -359,16 +359,12 @@ main( int argc, char ** argv )
|
|||
}
|
||||
fprintf( stderr, "\n" );
|
||||
|
||||
/* Try for 5 seconds to delete any port mappings for nat traversal */
|
||||
/* try for 5 seconds to delete any port mappings for nat traversal */
|
||||
tr_sessionSetPortForwardingEnabled( h, 0 );
|
||||
for( i = 0; i < 10; i++ )
|
||||
{
|
||||
const tr_handle_status * hstat = tr_handleStatus( h );
|
||||
if( TR_NAT_TRAVERSAL_UNMAPPED == hstat->natTraversalStatus )
|
||||
{
|
||||
/* Port mappings were deleted */
|
||||
for( i=0; i<10; ++i ) {
|
||||
const tr_port_forwarding f = tr_sessionGetPortForwarding( h );
|
||||
if( f == TR_PORT_UNMAPPED )
|
||||
break;
|
||||
}
|
||||
tr_wait( 500 );
|
||||
}
|
||||
|
||||
|
|
|
@ -196,14 +196,14 @@ tr_natpmpPulse( struct tr_natpmp * nat, int port, int isEnabled )
|
|||
}
|
||||
|
||||
switch( nat->state ) {
|
||||
case TR_NATPMP_IDLE: ret = nat->isMapped ? TR_NAT_TRAVERSAL_MAPPED : TR_NAT_TRAVERSAL_UNMAPPED; break;
|
||||
case TR_NATPMP_DISCOVER: ret = TR_NAT_TRAVERSAL_UNMAPPED; break;
|
||||
case TR_NATPMP_IDLE: ret = nat->isMapped ? TR_PORT_MAPPED : TR_PORT_UNMAPPED; break;
|
||||
case TR_NATPMP_DISCOVER: ret = TR_PORT_UNMAPPED; break;
|
||||
case TR_NATPMP_RECV_PUB:
|
||||
case TR_NATPMP_SEND_MAP:
|
||||
case TR_NATPMP_RECV_MAP: ret = TR_NAT_TRAVERSAL_MAPPING; break;
|
||||
case TR_NATPMP_RECV_MAP: ret = TR_PORT_MAPPING; break;
|
||||
case TR_NATPMP_SEND_UNMAP:
|
||||
case TR_NATPMP_RECV_UNMAP: ret = TR_NAT_TRAVERSAL_UNMAPPING; break;
|
||||
default: ret = TR_NAT_TRAVERSAL_ERROR; break;
|
||||
case TR_NATPMP_RECV_UNMAP: ret = TR_PORT_UNMAPPING; break;
|
||||
default: ret = TR_PORT_ERROR; break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -45,8 +45,8 @@ struct tr_shared
|
|||
unsigned int isEnabled : 1;
|
||||
unsigned int isShuttingDown : 1;
|
||||
|
||||
tr_nat_traversal_status natpmpStatus;
|
||||
tr_nat_traversal_status upnpStatus;
|
||||
tr_port_forwarding natpmpStatus;
|
||||
tr_port_forwarding upnpStatus;
|
||||
|
||||
int bindPort;
|
||||
int bindSocket;
|
||||
|
@ -69,14 +69,14 @@ getNatStateStr( int state )
|
|||
switch( state )
|
||||
{
|
||||
/* we're in the process of trying to set up port forwarding */
|
||||
case TR_NAT_TRAVERSAL_MAPPING: return _( "Starting" );
|
||||
case TR_PORT_MAPPING: return _( "Starting" );
|
||||
/* we've successfully forwarded the port */
|
||||
case TR_NAT_TRAVERSAL_MAPPED: return _( "Forwarded" );
|
||||
case TR_PORT_MAPPED: return _( "Forwarded" );
|
||||
/* we're cancelling the port forwarding */
|
||||
case TR_NAT_TRAVERSAL_UNMAPPING: return _( "Stopping" );
|
||||
case TR_PORT_UNMAPPING: return _( "Stopping" );
|
||||
/* the port isn't forwarded */
|
||||
case TR_NAT_TRAVERSAL_UNMAPPED: return _( "Not forwarded" );
|
||||
case TR_NAT_TRAVERSAL_ERROR: return "???";
|
||||
case TR_PORT_UNMAPPED: return _( "Not forwarded" );
|
||||
case TR_PORT_ERROR: return "???";
|
||||
}
|
||||
|
||||
return "notfound";
|
||||
|
@ -190,8 +190,8 @@ tr_sharedInit( tr_handle * h, int isEnabled, int publicPort )
|
|||
s->upnp = tr_upnpInit();
|
||||
s->pulseTimer = tr_timerNew( h, sharedPulse, s, 1000 );
|
||||
s->isEnabled = isEnabled ? 1 : 0;
|
||||
s->upnpStatus = TR_NAT_TRAVERSAL_UNMAPPED;
|
||||
s->natpmpStatus = TR_NAT_TRAVERSAL_UNMAPPED;
|
||||
s->upnpStatus = TR_PORT_UNMAPPED;
|
||||
s->natpmpStatus = TR_PORT_UNMAPPED;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -315,22 +315,10 @@ tr_sessionGetPublicPort( const tr_handle * h )
|
|||
return tr_sharedGetPublicPort( h->shared );
|
||||
}
|
||||
|
||||
const tr_handle_status *
|
||||
tr_handleStatus( tr_handle * h )
|
||||
tr_port_forwarding
|
||||
tr_sessionGetPortForwarding( const tr_handle * h )
|
||||
{
|
||||
tr_handle_status * s;
|
||||
|
||||
h->statCur = ( h->statCur + 1 ) % 2;
|
||||
s = &h->stats[h->statCur];
|
||||
|
||||
tr_globalLock( h );
|
||||
|
||||
s->natTraversalStatus = tr_sharedTraversalStatus( h->shared );
|
||||
s->publicPort = tr_sharedGetPublicPort( h->shared );
|
||||
|
||||
tr_globalUnlock( h );
|
||||
|
||||
return s;
|
||||
return tr_sharedTraversalStatus( h->shared );
|
||||
}
|
||||
|
||||
/***
|
||||
|
|
|
@ -86,9 +86,6 @@ struct tr_handle
|
|||
tr_rpc_func rpc_func;
|
||||
void * rpc_func_user_data;
|
||||
|
||||
tr_handle_status stats[2];
|
||||
int statCur;
|
||||
|
||||
struct tr_stats_handle * sessionStats;
|
||||
struct tr_tracker_handle * tracker;
|
||||
|
||||
|
|
|
@ -199,10 +199,14 @@ void tr_getCumulativeSessionStats( const tr_handle * handle,
|
|||
|
||||
void tr_clearSessionStats( tr_handle * handle );
|
||||
|
||||
|
||||
/**
|
||||
***
|
||||
**/
|
||||
* Set whether or not torrents are allowed to do peer exchanges.
|
||||
* PEX is always disabled in private torrents regardless of this.
|
||||
* In public torrents, PEX is enabled by default.
|
||||
*/
|
||||
void tr_sessionSetPexEnabled( tr_handle *, int isEnabled );
|
||||
|
||||
int tr_sessionIsPexEnabled( const tr_handle * );
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
@ -225,6 +229,37 @@ void tr_sessionSetEncryption( tr_handle * handle, tr_encryption_mode mode );
|
|||
const char * tr_sessionGetConfigDir( const tr_handle * );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
** Incoming Peer Connections Port
|
||||
*/
|
||||
|
||||
void tr_sessionSetPortForwardingEnabled( tr_handle *, int enable );
|
||||
|
||||
int tr_sessionIsPortForwardingEnabled( const tr_handle * );
|
||||
|
||||
void tr_sessionSetPublicPort( tr_handle *, int );
|
||||
|
||||
int tr_sessionGetPublicPort( const tr_handle * );
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TR_PORT_ERROR,
|
||||
TR_PORT_UNMAPPED,
|
||||
TR_PORT_UNMAPPING,
|
||||
TR_PORT_MAPPING,
|
||||
TR_PORT_MAPPED
|
||||
}
|
||||
tr_port_forwarding;
|
||||
|
||||
tr_port_forwarding tr_sessionGetPortForwarding( const tr_handle * );
|
||||
|
||||
|
||||
//ccccccc
|
||||
|
||||
/**
|
||||
***
|
||||
**/
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -272,37 +307,6 @@ void tr_setMessageQueuing( int enable );
|
|||
tr_msg_list * tr_getQueuedMessages( void );
|
||||
void tr_freeMessageList( tr_msg_list * freeme );
|
||||
|
||||
/***********************************************************************
|
||||
** Incoming Peer Connections Port
|
||||
*/
|
||||
|
||||
void tr_sessionSetPortForwardingEnabled( tr_handle *, int enable );
|
||||
|
||||
int tr_sessionIsPortForwardingEnabled( const tr_handle * );
|
||||
|
||||
void tr_sessionSetPublicPort( tr_handle *, int );
|
||||
|
||||
int tr_sessionGetPublicPort( const tr_handle * );
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TR_NAT_TRAVERSAL_ERROR,
|
||||
TR_NAT_TRAVERSAL_UNMAPPED,
|
||||
TR_NAT_TRAVERSAL_UNMAPPING,
|
||||
TR_NAT_TRAVERSAL_MAPPING,
|
||||
TR_NAT_TRAVERSAL_MAPPED
|
||||
}
|
||||
tr_nat_traversal_status;
|
||||
|
||||
typedef struct tr_handle_status
|
||||
{
|
||||
tr_nat_traversal_status natTraversalStatus;
|
||||
int publicPort;
|
||||
}
|
||||
tr_handle_status;
|
||||
|
||||
const tr_handle_status * tr_handleStatus( tr_handle * );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
***
|
||||
|
@ -599,15 +603,6 @@ tr_torrent ** tr_sessionLoadTorrents ( tr_handle * h,
|
|||
|
||||
|
||||
|
||||
/**
|
||||
* Set whether or not torrents are allowed to do peer exchanges.
|
||||
* PEX is always disabled in private torrents regardless of this.
|
||||
* In public torrents, PEX is enabled by default.
|
||||
*/
|
||||
void tr_sessionSetPexEnabled( tr_handle *, int isEnabled );
|
||||
|
||||
int tr_sessionIsPexEnabled( const tr_handle * );
|
||||
|
||||
const tr_info * tr_torrentInfo( const tr_torrent * );
|
||||
|
||||
void tr_torrentSetDownloadDir( tr_torrent *, const char * );
|
||||
|
|
|
@ -161,12 +161,12 @@ tr_upnpPulse( tr_upnp * handle, int port, int isEnabled )
|
|||
|
||||
switch( handle->state )
|
||||
{
|
||||
case TR_UPNP_DISCOVER: ret = TR_NAT_TRAVERSAL_UNMAPPED; break;
|
||||
case TR_UPNP_MAP: ret = TR_NAT_TRAVERSAL_MAPPING; break;
|
||||
case TR_UPNP_UNMAP: ret = TR_NAT_TRAVERSAL_UNMAPPING; break;
|
||||
case TR_UPNP_IDLE: ret = handle->isMapped ? TR_NAT_TRAVERSAL_MAPPED
|
||||
: TR_NAT_TRAVERSAL_UNMAPPED; break;
|
||||
default: ret = TR_NAT_TRAVERSAL_ERROR; break;
|
||||
case TR_UPNP_DISCOVER: ret = TR_PORT_UNMAPPED; break;
|
||||
case TR_UPNP_MAP: ret = TR_PORT_MAPPING; break;
|
||||
case TR_UPNP_UNMAP: ret = TR_PORT_UNMAPPING; break;
|
||||
case TR_UPNP_IDLE: ret = handle->isMapped ? TR_PORT_MAPPED
|
||||
: TR_PORT_UNMAPPED; break;
|
||||
default: ret = TR_PORT_ERROR; break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -264,11 +264,13 @@
|
|||
|
||||
- (void) updatePortStatus
|
||||
{
|
||||
const tr_handle_status * stat = tr_handleStatus(fHandle);
|
||||
if (fNatStatus != stat->natTraversalStatus || fPublicPort != stat->publicPort)
|
||||
const tr_port_forwarding fwd = tr_sessionGetPortForwarding(fHandle);
|
||||
const int port = tr_sessionGetPublicPort(fHandle);
|
||||
|
||||
if (fNatStatus != fwd || fPublicPort != port )
|
||||
{
|
||||
fNatStatus = stat->natTraversalStatus;
|
||||
fPublicPort = stat->publicPort;
|
||||
fNatStatus = fwd;
|
||||
fPublicPort = port;
|
||||
|
||||
[fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status", "Preferences -> Network -> port status")
|
||||
stringByAppendingEllipsis]];
|
||||
|
|
Loading…
Reference in New Issue