Fix stupid bug in neighbor cache.
This commit is contained in:
parent
ef2c708dfa
commit
287111fed1
2 changed files with 2 additions and 3 deletions
|
@ -232,8 +232,8 @@ if_update(struct iface *new)
|
||||||
i = mb_alloc(if_pool, sizeof(struct iface));
|
i = mb_alloc(if_pool, sizeof(struct iface));
|
||||||
memcpy(i, new, sizeof(*i));
|
memcpy(i, new, sizeof(*i));
|
||||||
init_list(&i->addrs);
|
init_list(&i->addrs);
|
||||||
init_list(&i->neighbors);
|
|
||||||
newif:
|
newif:
|
||||||
|
init_list(&i->neighbors);
|
||||||
i->flags |= IF_UPDATED | IF_TMP_DOWN; /* Tmp down as we don't have addresses yet */
|
i->flags |= IF_UPDATED | IF_TMP_DOWN; /* Tmp down as we don't have addresses yet */
|
||||||
add_tail(&iface_list, &i->n);
|
add_tail(&iface_list, &i->n);
|
||||||
return i;
|
return i;
|
||||||
|
|
|
@ -138,8 +138,7 @@ neigh_if_up(struct iface *i)
|
||||||
neighbor *n, *next;
|
neighbor *n, *next;
|
||||||
|
|
||||||
WALK_LIST_DELSAFE(n, next, sticky_neigh_list)
|
WALK_LIST_DELSAFE(n, next, sticky_neigh_list)
|
||||||
if (!n->iface &&
|
if (if_connected(&n->addr, i) > 0)
|
||||||
if_connected(&n->addr, i) > 0)
|
|
||||||
{
|
{
|
||||||
n->iface = i;
|
n->iface = i;
|
||||||
add_tail(&i->neighbors, &n->if_n);
|
add_tail(&i->neighbors, &n->if_n);
|
||||||
|
|
Loading…
Reference in a new issue