diff options
author | Ondrej Filip <feela@network.cz> | 2000-05-30 17:49:25 +0000 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-05-30 17:49:25 +0000 |
commit | 3d410fdfa1a6fc20952cf94b39ebff197a3c065a (patch) | |
tree | 4414b4116b62b90798b9f9d7cc477052cbb87877 /proto | |
parent | 13b02be25a41d7a505f7a888f948220a15edcf8a (diff) |
Reflood your old lsa.
Diffstat (limited to 'proto')
-rw-r--r-- | proto/ospf/lsalib.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c index face9dcf..91a73f0d 100644 --- a/proto/ospf/lsalib.c +++ b/proto/ospf/lsalib.c @@ -20,6 +20,7 @@ ospf_age(struct top_hash_entry *en, bird_clock_t delta, int flush, struct ospf_area *oa) { struct proto *p=&oa->po->proto; + struct proto_ospf *po=(struct proto_ospf *)p; if(en->lsa.age==LSA_MAXAGE) { if(flush) flush_lsa(en,oa); @@ -27,13 +28,15 @@ ospf_age(struct top_hash_entry *en, bird_clock_t delta, int flush, } if((en->lsa.rt==p->cf->global->router_id)&&(en->lsa.age>LSREFRESHTIME)) { - /* FIXME Reflood again my self originated LSA */ + en->lsa.sn++; + en->lsa.age=0; + flood_lsa(NULL,NULL,&en->lsa,po,NULL,oa,1); + return; } if((en->lsa.age+=delta)>LSA_MAXAGE) { if(flush) flush_lsa(en,oa); else en->lsa.age=LSA_MAXAGE; - return; } } |