diff options
author | Ondrej Filip <feela@network.cz> | 2000-05-04 00:36:12 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-05-04 00:36:12 +0200 |
commit | 9e48d717cf681dcc3cfaaee4358b5c6fa3aa409e (patch) | |
tree | 6796b8f0450a3acac8c877c4d54afa7221bdada0 /proto/ospf | |
parent | a02c6c184b513fe1886c86533e696045e960515b (diff) | |
download | bird-9e48d717cf681dcc3cfaaee4358b5c6fa3aa409e.tar bird-9e48d717cf681dcc3cfaaee4358b5c6fa3aa409e.zip |
Test for "flushing" added.
Diffstat (limited to 'proto/ospf')
-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; } |