From 9bc1808a27b35499d2438d731ade6d2cba8aa355 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Wed, 3 May 2000 00:08:48 +0000 Subject: Better rt and net originating. --- proto/ospf/neighbor.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'proto/ospf/neighbor.c') diff --git a/proto/ospf/neighbor.c b/proto/ospf/neighbor.c index 4a44b6b..050a253 100644 --- a/proto/ospf/neighbor.c +++ b/proto/ospf/neighbor.c @@ -25,11 +25,24 @@ neigh_chstate(struct ospf_neighbor *n, u8 state) if(n->state!=state) { ifa=n->ifa; + if(n->state==NEIGHBOR_FULL) + { + ifa->fadj++; + n->state=state; + originate_rt_lsa(ifa->oa,ifa->oa->po); + originate_net_lsa(ifa,ifa->oa->po); + } p=(struct proto *)(ifa->proto); debug("%s: Neigbor %I changes state from \"%s\" to \"%s\".\n", p->name, n->rid, ospf_ns[n->state], ospf_ns[state]); n->state=state; + if(state==NEIGHBOR_FULL) + { + ifa->fadj--; + originate_rt_lsa(n->ifa->oa,n->ifa->oa->po); + originate_net_lsa(ifa,ifa->oa->po); + } } } @@ -236,7 +249,6 @@ ospf_neigh_sm(struct ospf_neighbor *n, int event) break; case INM_LOADDONE: neigh_chstate(n,NEIGHBOR_FULL); - originate_rt_lsa(n->ifa->oa,po); break; case INM_ADJOK: switch(n->state) -- cgit v1.2.3