diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2009-02-12 19:46:51 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2009-02-12 19:46:51 +0100 |
commit | d901db3fb72860d4669793bfb1af3a9aa7a27b91 (patch) | |
tree | 6ffcf120f4eb606e12c1998f398db657d5d5ef50 | |
parent | b807ef9a15db2a5db14f68011923975dfc472f49 (diff) | |
download | bird-d901db3fb72860d4669793bfb1af3a9aa7a27b91.tar bird-d901db3fb72860d4669793bfb1af3a9aa7a27b91.zip |
Fixes bug in packet retransmissions.
When packet was lost during dbdes exchange, slave did not retransmit
it. That leads to OSPF connection locked in states exchange-exstart.
-rw-r--r-- | proto/ospf/dbdes.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/proto/ospf/dbdes.c b/proto/ospf/dbdes.c index 9f45dfd..54190c3 100644 --- a/proto/ospf/dbdes.c +++ b/proto/ospf/dbdes.c @@ -263,8 +263,9 @@ ospf_dbdes_receive(struct ospf_dbdes_packet *ps, { /* Duplicate packet */ OSPF_TRACE(D_PACKETS, "Received duplicate dbdes from %I.", n->ip); - if (n->imms.bit.ms == 0) + if (n->myimms.bit.ms == 0) { + /* Slave should retransmit dbdes packet */ ospf_dbdes_send(n); } return; |