summaryrefslogtreecommitdiffstats
path: root/proto/ospf/dbdes.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-02-12 19:46:51 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2009-02-12 19:46:51 +0100
commitd901db3fb72860d4669793bfb1af3a9aa7a27b91 (patch)
tree6ffcf120f4eb606e12c1998f398db657d5d5ef50 /proto/ospf/dbdes.c
parentb807ef9a15db2a5db14f68011923975dfc472f49 (diff)
downloadbird-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.
Diffstat (limited to 'proto/ospf/dbdes.c')
-rw-r--r--proto/ospf/dbdes.c3
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;