From 74ac7cdb1afe1e23a130b290f4a366268073f62c Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Wed, 10 May 2000 23:41:52 +0000 Subject: Bugfix in (B)DR election. --- proto/ospf/neighbor.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'proto/ospf/neighbor.c') diff --git a/proto/ospf/neighbor.c b/proto/ospf/neighbor.c index 479b0f8..1e9ebee 100644 --- a/proto/ospf/neighbor.c +++ b/proto/ospf/neighbor.c @@ -316,12 +316,12 @@ bdr_election(struct ospf_iface *ifa, struct proto *p) nbdr=electbdr(ifa->neigh_list); ndr=electdr(ifa->neigh_list); - if(ndr==NULL) ndr=nbdr; + if(ndr==NULL) ndr=nbdr; /* FIXME is this correct? */ - 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(((ifa->drid==myid) && (ndr!=&me)) + || ((ifa->drid!=myid) && (ndr==&me)) + || ((ifa->bdrid==myid) && (nbdr!=&me)) + || ((ifa->bdrid!=myid) && (nbdr==&me))) { if(ndr==NULL) ifa->drid=me.dr=0; else ifa->drid=me.dr=ndr->rid; -- cgit v1.2.3