]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Bugfix in (B)DR election.
authorOndrej Filip <feela@network.cz>
Wed, 10 May 2000 23:41:52 +0000 (23:41 +0000)
committerOndrej Filip <feela@network.cz>
Wed, 10 May 2000 23:41:52 +0000 (23:41 +0000)
proto/ospf/neighbor.c

index 479b0f8a3dba31ccd085367213f3d8c09c90e4f9..1e9ebee57a35d564c5b736d67cc10d9bb088b400 100644 (file)
@@ -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;