diff --git a/libtransmission/port-forwarding.c b/libtransmission/port-forwarding.c index 47cbd564c..40acd1622 100644 --- a/libtransmission/port-forwarding.c +++ b/libtransmission/port-forwarding.c @@ -125,14 +125,6 @@ onTimer( int fd UNUSED, short what UNUSED, void * vshared ) **** ***/ -static void -start_timer( tr_shared * s ) -{ - s->timer = tr_new0( struct event, 1 ); - evtimer_set( s->timer, onTimer, s ); - onTimer( 0, 0, s ); -} - tr_shared * tr_sharedInit( tr_session * session, tr_bool isEnabled ) { @@ -146,7 +138,14 @@ tr_sharedInit( tr_session * session, tr_bool isEnabled ) s->natpmpStatus = TR_PORT_UNMAPPED; if( isEnabled ) - start_timer( s ); + { + struct timeval timeval; + timeval.tv_sec = 0; + timeval.tv_usec = 333000; + s->timer = tr_new0( struct event, 1 ); + evtimer_set( s->timer, onTimer, s ); + evtimer_add( s->timer, &timeval ); + } return s; } @@ -183,6 +182,14 @@ tr_sharedClose( tr_session * session ) tr_free( s ); } +static void +start_timer( tr_shared * s ) +{ + s->timer = tr_new0( struct event, 1 ); + evtimer_set( s->timer, onTimer, s ); + onTimer( 0, 0, s ); +} + void tr_sharedTraversalEnable( tr_shared * s, tr_bool isEnabled ) {