diff options
author | ajs <ajs> | 2006-06-30 03:21:05 +0000 |
---|---|---|
committer | ajs <ajs> | 2006-06-30 03:21:05 +0000 |
commit | a8ee77034726048dcb8091855e7c08eafabb1fe2 (patch) | |
tree | a28d1ebb9381b616bafb5d4d84105829efd92811 /ospfd/ospf_nsm.c | |
parent | 5a733134bdfb6da837d2ed39755cda9599285006 (diff) | |
download | quagga-a8ee77034726048dcb8091855e7c08eafabb1fe2.tar.bz2 quagga-a8ee77034726048dcb8091855e7c08eafabb1fe2.tar.xz |
[ospfd] Avoid getting NSM stuck in ExStart by using local view of DR/BDR
2006-06-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_nsm.c: (nsm_twoway_received) When deciding whether to
change from state Init to ExStart, the test for whether the
neighboring router is DR or BDR should be against the
local router's notion of DR/BDR, not the neighbor's view.
Diffstat (limited to 'ospfd/ospf_nsm.c')
-rw-r--r-- | ospfd/ospf_nsm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 878ab567..df9a5251 100644 --- a/ospfd/ospf_nsm.c +++ b/ospfd/ospf_nsm.c @@ -203,8 +203,8 @@ nsm_twoway_received (struct ospf_neighbor *nbr) next_state = NSM_ExStart; /* Neighboring Router is the DRouter or the BDRouter. */ - if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->d_router) || - IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->bd_router)) + if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR(oi)) || + IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR(oi))) next_state = NSM_ExStart; return next_state; |