diff options
author | hasso <hasso> | 2004-05-19 20:45:03 +0200 |
---|---|---|
committer | hasso <hasso> | 2004-05-19 20:45:03 +0200 |
commit | 62843e433d8f85bce381edc6202c4af6c5cec31b (patch) | |
tree | f58d372dd6ac4c45073d1fd08620cdc9ffe3f1c2 /isisd/isis_spf.c | |
parent | Commit 100% working part of patch from Laurent Rabret ([quagga-dev 830]). (diff) | |
download | frr-62843e433d8f85bce381edc6202c4af6c5cec31b.tar.xz frr-62843e433d8f85bce381edc6202c4af6c5cec31b.zip |
Fixing crash fix attempt. It's still mess and logic is wrong and ... but at
least periodic spf works again.
Diffstat (limited to 'isisd/isis_spf.c')
-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 1987e0d2c..1e414c6ca 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) |