"Bug in hashing" fixed. Ehm it was bug in lsrql node removing.
This commit is contained in:
parent
d8852b362c
commit
f1f7faceb4
1 changed files with 14 additions and 12 deletions
|
@ -141,13 +141,14 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p,
|
||||||
WALK_LIST(NODE ntmp,ifa->neigh_list)
|
WALK_LIST(NODE ntmp,ifa->neigh_list)
|
||||||
{
|
{
|
||||||
struct top_hash_entry *en;
|
struct top_hash_entry *en;
|
||||||
if((en=ospf_hash_find_header(ntmp->lsrqh,&lsatmp))!=NULL)
|
if(ntmp->state>NEIGHBOR_EXSTART)
|
||||||
{
|
if((en=ospf_hash_find_header(ntmp->lsrqh,&lsatmp))!=NULL)
|
||||||
s_rem_node(SNODE en);
|
{
|
||||||
DBG("Removing from lsreq list for neigh %u\n", ntmp->rid);
|
s_rem_node(SNODE en);
|
||||||
ospf_hash_delete(ntmp->lsrqh,en);
|
DBG("Removing from lsreq list for neigh %u\n", ntmp->rid);
|
||||||
if(EMPTY_SLIST(ntmp->lsrql)) ospf_neigh_sm(ntmp, INM_LOADDONE);
|
ospf_hash_delete(ntmp->lsrqh,en);
|
||||||
}
|
if(EMPTY_SLIST(ntmp->lsrql)) ospf_neigh_sm(ntmp, INM_LOADDONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((lsatmp.age==LSA_MAXAGE)&&(lsadb==NULL))
|
if((lsatmp.age==LSA_MAXAGE)&&(lsadb==NULL))
|
||||||
|
@ -184,11 +185,12 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p,
|
||||||
WALK_LIST(NODE ntmp,ifa->neigh_list)
|
WALK_LIST(NODE ntmp,ifa->neigh_list)
|
||||||
{
|
{
|
||||||
struct top_hash_entry *en;
|
struct top_hash_entry *en;
|
||||||
if((en=ospf_hash_find_header(ntmp->lsrth,&lsadb->lsa))!=NULL)
|
if(ntmp->state>NEIGHBOR_EXSTART)
|
||||||
{
|
if((en=ospf_hash_find_header(ntmp->lsrth,&lsadb->lsa))!=NULL)
|
||||||
s_rem_node(SNODE en);
|
{
|
||||||
ospf_hash_delete(ntmp->lsrth,en);
|
s_rem_node(SNODE en);
|
||||||
}
|
ospf_hash_delete(ntmp->lsrth,en);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Install new */
|
/* Install new */
|
||||||
|
|
Loading…
Reference in a new issue