diff options
Diffstat (limited to 'isisd')
-rw-r--r-- | isisd/isis_spf.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 3008fb6a1..47d2c5caa 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -1249,7 +1249,7 @@ static void init_spt(struct isis_spftree *spftree, int mtid, int level, } static int isis_run_spf(struct isis_area *area, int level, int family, - u_char *sysid) + u_char *sysid, struct timeval *nowtv) { int retval = ISIS_OK; struct isis_vertex *vertex; @@ -1263,9 +1263,8 @@ static int isis_run_spf(struct isis_area *area, int level, int family, uint16_t mtid; /* Get time that can't roll backwards. */ - monotime(&time_now); - start_time = time_now.tv_sec; - start_time = (start_time * 1000000) + time_now.tv_usec; + start_time = nowtv->tv_sec; + start_time = (start_time * 1000000) + nowtv->tv_usec; if (family == AF_INET) spftree = area->spftree[level - 1]; @@ -1372,9 +1371,11 @@ static int isis_run_spf_cb(struct thread *thread) area->area_tag, level); if (area->ip_circuits) - retval = isis_run_spf(area, level, AF_INET, isis->sysid); + retval = isis_run_spf(area, level, AF_INET, isis->sysid, + &thread->real); if (area->ipv6_circuits) - retval = isis_run_spf(area, level, AF_INET6, isis->sysid); + retval = isis_run_spf(area, level, AF_INET6, isis->sysid, + &thread->real); return retval; } |