]> granicus.if.org Git - transmission/commitdiff
(trunk libT) possible fix for the slow startup reported by livings and Waldorf
authorCharles Kerr <charles@transmissionbt.com>
Wed, 20 May 2009 17:35:41 +0000 (17:35 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Wed, 20 May 2009 17:35:41 +0000 (17:35 +0000)
libtransmission/port-forwarding.c

index 47cbd564ce868e049da95e71eda526b6308399d6..40acd162268bed0667d9155a1ee757558fe0c988 100644 (file)
@@ -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 )
 {