From: Ondrej Filip Date: Tue, 10 Sep 2013 23:15:34 +0000 (+0200) Subject: OSPF state machine fix - thanx to Alexander V. Chernikov X-Git-Tag: v1.4.0~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c404f4b968b69a2c5c1975d04abf7474891d5656;p=thirdparty%2Fbird.git OSPF state machine fix - thanx to Alexander V. Chernikov --- diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index a5da4251d..b19f2619f 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -205,7 +205,7 @@ ospf_lsupd_flood(struct proto_ospf *po, en->lsa_body = NULL; DBG("Removing from lsreq list for neigh %R\n", nn->rid); ospf_hash_delete(nn->lsrqh, en); - if (EMPTY_SLIST(nn->lsrql)) + if ((EMPTY_SLIST(nn->lsrql)) && (nn->state == NEIGHBOR_LOADING)) ospf_neigh_sm(nn, INM_LOADDONE); continue; break; @@ -216,7 +216,7 @@ ospf_lsupd_flood(struct proto_ospf *po, en->lsa_body = NULL; DBG("Removing from lsreq list for neigh %R\n", nn->rid); ospf_hash_delete(nn->lsrqh, en); - if (EMPTY_SLIST(nn->lsrql)) + if ((EMPTY_SLIST(nn->lsrql)) && (nn->state == NEIGHBOR_LOADING)) ospf_neigh_sm(nn, INM_LOADDONE); break; default: