From bc632a936038a07c21e48d28e84be85e0a9a76b8 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 20 May 2009 17:35:41 +0000 Subject: [PATCH] (trunk libT) possible fix for the slow startup reported by livings and Waldorf --- libtransmission/port-forwarding.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) 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 ) {