diff options
-rw-r--r-- | usr.sbin/ospfd/lsreq.c | 6 |
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); } |