X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilctimer.c;h=0313a3158698f8a7ea502cc688ad10311e07d6dd;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=903712748bae4627d3023cb9c204edfce8e2dde8;hpb=182f1698206a2227616be30691591eea1274cd2b;p=silc.git diff --git a/lib/silcutil/silctimer.c b/lib/silcutil/silctimer.c index 90371274..0313a315 100644 --- a/lib/silcutil/silctimer.c +++ b/lib/silcutil/silctimer.c @@ -25,12 +25,13 @@ void silc_timer_start(SilcTimer timer) { struct timeval curtime; - memset(timer, 0, sizeof(timer)); - silc_gettimeofday(&curtime); timer->start_sec = curtime.tv_sec; timer->start_usec = curtime.tv_usec; - + timer->timer_sec = 0; + timer->timer_usec = 0; + timer->sync_diff = 0; + timer->sync_tdiff = 0; timer->running = TRUE; } @@ -48,6 +49,7 @@ void silc_timer_stop(SilcTimer timer) } timer->timer_sec = curtime.tv_sec - timer->start_sec; timer->timer_usec = curtime.tv_usec - timer->start_usec; + timer->timer_usec -= timer->sync_diff; timer->running = FALSE; } @@ -90,6 +92,7 @@ void silc_timer_value(SilcTimer timer, } timer->timer_sec = curtime.tv_sec - timer->start_sec; timer->timer_usec = curtime.tv_usec - timer->start_usec; + timer->timer_usec -= timer->sync_diff; } if (elapsed_time_seconds)