summaryrefslogtreecommitdiffstats
path: root/proto/ospf/hello.c
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2000-05-09 20:35:57 +0200
committerOndrej Filip <feela@network.cz>2000-05-09 20:35:57 +0200
commit850fda2518d6e91ca8e126ff91adad62fd507276 (patch)
tree5f02609a854fce0eb3c3b6ac178df9f401fc7907 /proto/ospf/hello.c
parentcd22a62b3ce3aa4cf8985337657ec9750176aa49 (diff)
downloadbird-850fda2518d6e91ca8e126ff91adad62fd507276.tar
bird-850fda2518d6e91ca8e126ff91adad62fd507276.zip
Backup seen is not called so often.
Diffstat (limited to 'proto/ospf/hello.c')
-rw-r--r--proto/ospf/hello.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/proto/ospf/hello.c b/proto/ospf/hello.c
index 4535c5e..b6e34e2 100644
--- a/proto/ospf/hello.c
+++ b/proto/ospf/hello.c
@@ -150,10 +150,12 @@ ospf_hello_rx(struct ospf_hello_packet *ps, struct proto *p,
if(n->priority!=oldpriority) ospf_int_sm(ifa, ISM_NEICH);
/* Router is declaring itself ad DR and there is no BDR */
- if((n->rid==n->dr) && (n->bdr==0)) ospf_int_sm(ifa, ISM_BACKS);
+ if((n->rid==n->dr) && (n->bdr==0) && (n->state!=NEIGHBOR_FULL))
+ ospf_int_sm(ifa, ISM_BACKS);
/* Neighbor is declaring itself as BDR */
- if(n->rid==n->bdr) ospf_int_sm(ifa, ISM_BACKS);
+ if((n->rid==n->bdr) && (n->state!=NEIGHBOR_FULL))
+ ospf_int_sm(ifa, ISM_BACKS);
/* Neighbor is newly declaring itself as DR or BDR */
if(((n->rid==n->dr) && (n->dr!=olddr)) || ((n->rid==n->bdr) &&