summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proto/ospf/lsalib.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c
index face9dc..91a73f0 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;
}
}