summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/ospfd/lsreq.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/ospfd/lsreq.c b/usr.sbin/ospfd/lsreq.c
index 840df7b24c3..fa5569c949c 100644
--- a/usr.sbin/ospfd/lsreq.c
+++ b/usr.sbin/ospfd/lsreq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lsreq.c,v 1.19 2010/05/26 13:56:08 nicm Exp $ */
+/* $OpenBSD: lsreq.c,v 1.20 2013/01/17 09:02:22 markus Exp $ */
/*
* Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -164,7 +164,9 @@ ls_req_list_free(struct nbr *nbr, struct lsa_entry *le)
start_ls_req_tx_timer(nbr);
}
- if (ls_req_list_empty(nbr) && nbr->dd_pending == 0)
+ /* we might not have received all DDs and are still in XCHNG */
+ if (ls_req_list_empty(nbr) && nbr->dd_pending == 0 &&
+ nbr->state != NBR_STA_XCHNG)
nbr_fsm(nbr, NBR_EVT_LOAD_DONE);
}