summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-02-25 16:28:21 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2009-02-25 16:28:21 +0100
commita9dc5e1ef2fd08c53bceb54690f6dac83ddf0c81 (patch)
tree1296515bd9ab937e664265cab45ece13624aa164
parent82ba9032be9cf1210ffffd01245b99ce5d9b6b1b (diff)
downloadbird-a9dc5e1ef2fd08c53bceb54690f6dac83ddf0c81.tar
bird-a9dc5e1ef2fd08c53bceb54690f6dac83ddf0c81.zip
Fixes another bug in packet retransmissions.
When slave was in full state, it didn't retransmit lost packets. That leads to OSPF connection locked in states loading-full.
-rw-r--r--proto/ospf/dbdes.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/proto/ospf/dbdes.c b/proto/ospf/dbdes.c
index 54190c3..4cba667 100644
--- a/proto/ospf/dbdes.c
+++ b/proto/ospf/dbdes.c
@@ -344,6 +344,11 @@ ospf_dbdes_receive(struct ospf_dbdes_packet *ps,
/* Only duplicate are accepted */
{
OSPF_TRACE(D_PACKETS, "Received duplicate dbdes from %I.", n->ip);
+ if (n->myimms.bit.ms == 0)
+ {
+ /* Slave should retransmit dbdes packet */
+ ospf_dbdes_send(n);
+ }
return;
}
else