diff options
author | hasso <hasso> | 2004-05-19 18:45:03 +0000 |
---|---|---|
committer | hasso <hasso> | 2004-05-19 18:45:03 +0000 |
commit | 62843e433d8f85bce381edc6202c4af6c5cec31b (patch) | |
tree | f58d372dd6ac4c45073d1fd08620cdc9ffe3f1c2 | |
parent | 00995cfcc9cb30afabb3242837753ab1eb7fdb85 (diff) |
Fixing crash fix attempt. It's still mess and logic is wrong and ... but at
least periodic spf works again.
-rw-r--r-- | isisd/isis_spf.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 1987e0d2..1e414c6c 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -942,12 +942,18 @@ isis_run_spf (struct isis_area *area, int level, int family) spftree->lastrun = time (NULL); spftree->pending = 0; - if (level == 1) + if (level == 1) { + /* FIXME: Should do it earlier. */ + spftree->t_spf_periodic = NULL; THREAD_TIMER_ON(master, spftree->t_spf_periodic, isis_run_spf_l1, area, isis_jitter(PERIODIC_SPF_INTERVAL, 10)); - else + } + else { + /* FIXME: Should do it earlier. */ + spftree->t_spf_periodic = NULL; THREAD_TIMER_ON(master, spftree->t_spf_periodic, isis_run_spf_l2, area, isis_jitter(PERIODIC_SPF_INTERVAL, 10)); + } return retval; } @@ -1039,7 +1045,7 @@ isis_spf_schedule (struct isis_area *area, int level) } /* FIXME: This stuff is just mess. All spf thread add/cancel logic should be reviewed. */ - /* THREAD_TIMER_OFF(spftree->t_spf_periodic); */ + THREAD_TIMER_OFF(spftree->t_spf_periodic); if (diff < MINIMUM_SPF_INTERVAL) { if (level == 1) |