diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/ospf/rt.c | 4 | ||||
-rw-r--r-- | proto/ospf/topology.c | 10 |
2 files changed, 6 insertions, 8 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index bd2aa87..4625df6 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -30,14 +30,14 @@ ospf_rt_spfa(struct ospf_area *oa) int age=0,flush=0; struct proto *p=&oa->po->proto; - /* FIXME if I'm not in LOADING or EXCHANGE set flush=1 */ + flush=can_flush_lsa(oa); if((delta=now-oa->lage)>=AGINGDELTA) { oa->lage=now; age=1; } - WALK_SLIST_DELSAFE(SNODE en, nx, oa->lsal) /* FIXME Make it DELSAFE */ + WALK_SLIST_DELSAFE(SNODE en, nx, oa->lsal) { en->color=OUTSPF; en->dist=LSINFINITY; diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index 57ac088..22f463c 100644 --- a/proto/ospf/topology.c +++ b/proto/ospf/topology.c @@ -159,7 +159,7 @@ age_timer_hook(timer *timer) struct top_hash_entry *en,*nxt; int flush=0; - /* FIXME Fill flush! */ + flush=can_flush_lsa(oa); if((delta=now-oa->lage)>=AGINGDELTA) { @@ -515,7 +515,6 @@ can_flush_lsa(struct ospf_area *oa) struct ospf_iface *ifa; struct ospf_neighbor *n; struct proto_ospf *po=oa->po; - int flush=1; WALK_LIST(ifa, iface_list) { @@ -523,14 +522,13 @@ can_flush_lsa(struct ospf_area *oa) { WALK_LIST(n, ifa->neigh_list) { - if(n->state==NEIGHBOR_EXCHANGE||n->state==NEIGHBOR_LOADING) + if((n->state==NEIGHBOR_EXCHANGE)||(n->state==NEIGHBOR_LOADING)) { - flush=0; - break; + return 0; } } } } - return flush; + return 1; } |