From b1693b8f749ccc683a2a78dc3129e56e500bc73f Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Mon, 9 Aug 1999 18:11:51 +0000 Subject: Bug in election fixed. --- proto/ospf/ospf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'proto') diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index a4356866..48c6e038 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -149,6 +149,9 @@ backupseen(struct ospf_iface *ifa) p=(struct proto *)(ifa->proto); + tm_stop(ifa->wait_timer); + DBG("%s: Stoping wait timer\n",p->name); + DBG("%s: (B)DR election.\n",p->name); myid=p->cf->global->router_id; @@ -166,10 +169,10 @@ backupseen(struct ospf_iface *ifa) if(ndr==NULL) ndr=nbdr; - if(((ifa->drid==myid) && (ndr!=myid)) - || ((ifa->drid!=myid) && (ndr==myid)) - || ((ifa->bdrid==myid) && (nbdr!=myid)) - || ((ifa->bdrid!=myid) && (nbdr==myid))) + if(((ifa->drid==myid) && (ndr->rid!=myid)) + || ((ifa->drid!=myid) && (ndr->rid==myid)) + || ((ifa->bdrid==myid) && (nbdr->rid!=myid)) + || ((ifa->bdrid!=myid) && (nbdr->rid==myid))) { if(ndr==NULL) ifa->drid=me.dr=0; else ifa->drid=me.dr=ndr->rid; @@ -188,9 +191,6 @@ backupseen(struct ospf_iface *ifa) DBG("%s: DR=%u, BDR=%u\n",p->name, ifa->drid, ifa->bdrid); - tm_stop(ifa->wait_timer); - DBG("%s: Stoping wait timer\n",p->name); - if(myid==ifa->drid) iface_chstate(ifa, OSPF_IS_DR); else { -- cgit v1.2.3