]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
OSPF state machine fix - thanx to Alexander V. Chernikov
authorOndrej Filip <feela@network.cz>
Tue, 10 Sep 2013 23:15:34 +0000 (01:15 +0200)
committerOndrej Filip <feela@network.cz>
Tue, 10 Sep 2013 23:15:34 +0000 (01:15 +0200)
proto/ospf/lsupd.c

index a5da4251dae7ab7988ec60e3364f062c6db7c654..b19f2619f340649d8ef51329981eedb7fa08f75c 100644 (file)
@@ -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: