}
static void
-onTimer( int fd UNUSED, short what UNUSED, void * vshared )
+set_evtimer_from_status( tr_shared * s )
{
int sec=0, msec=0;
- tr_shared * s = vshared;
-
- assert( s );
- assert( s->timer );
-
- /* do something */
- natPulse( s, s->doPortCheck );
- s->doPortCheck = FALSE;
/* when to wake up again */
switch( tr_sharedTraversalStatus( s ) )
tr_timerAdd( s->timer, sec, msec );
}
+static void
+onTimer( int fd UNUSED, short what UNUSED, void * vshared )
+{
+ tr_shared * s = vshared;
+
+ assert( s );
+ assert( s->timer );
+
+ /* do something */
+ natPulse( s, s->doPortCheck );
+ s->doPortCheck = FALSE;
+
+ /* set up the timer for the next pulse */
+ set_evtimer_from_status( s );
+}
+
/***
****
***/
{
s->timer = tr_new0( struct event, 1 );
evtimer_set( s->timer, onTimer, s );
- onTimer( 0, 0, s );
+ set_evtimer_from_status( s );
}
void