From: Ondrej Filip Date: Sun, 6 Jun 2004 17:03:56 +0000 (+0000) Subject: Be sure, that ospf_area is aged before routing table calculation. X-Git-Tag: v1.2.0~304 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd09226078471cf9a2db4e755fbd5f6f137137c9;p=thirdparty%2Fbird.git Be sure, that ospf_area is aged before routing table calculation. --- diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c index 80649f539..fcf23fc6a 100644 --- a/proto/ospf/lsalib.c +++ b/proto/ospf/lsalib.c @@ -49,7 +49,7 @@ ospf_age(struct ospf_area *oa) WALK_SLIST_DELSAFE(en, nxt, oa->lsal) { - if (po->calcrt) + if (oa->rt && (oa->rt->dist != LSINFINITY)) { en->color = OUTSPF; en->dist = LSINFINITY; diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index cbd53f652..78eb8025c 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -69,6 +69,9 @@ ospf_rt_spfa(struct ospf_area *oa) if (oa->rt == NULL) return; + if (oa->rt->dist != LSINFINITY) + ospf_age(oa); + FIB_WALK(in, nftmp) { nf = (struct infib *) nftmp; diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index 6a6eb01d5..75e074a73 100644 --- a/proto/ospf/topology.c +++ b/proto/ospf/topology.c @@ -201,6 +201,7 @@ originate_rt_lsa(struct ospf_area *oa) lsasum_calculate(&lsa, body, po); en = lsa_install_new(&lsa, body, oa); oa->rt = en; + en->dist = 0; /* Force area aging */ ospf_lsupd_flood(NULL, NULL, &oa->rt->lsa, NULL, oa, 1); schedule_rtcalc(po); oa->origrt = 0;