Bugfix in latest OSPF changes.

This commit is contained in:
Ondrej Zajicek 2014-11-03 20:35:25 +01:00
parent cd3b700393
commit ac9dc669d8
2 changed files with 7 additions and 3 deletions

View file

@ -281,10 +281,16 @@ void
ospf_iface_remove(struct ospf_iface *ifa) ospf_iface_remove(struct ospf_iface *ifa)
{ {
struct ospf_proto *p = ifa->oa->po; struct ospf_proto *p = ifa->oa->po;
int i;
if (ifa->type == OSPF_IT_VLINK) if (ifa->type == OSPF_IT_VLINK)
OSPF_TRACE(D_EVENTS, "Removing vlink to %R via area %R", ifa->vid, ifa->voa->areaid); OSPF_TRACE(D_EVENTS, "Removing vlink to %R via area %R", ifa->vid, ifa->voa->areaid);
/* Release LSAs from flood queue */
if (!ifa->stub)
for (i = 0; i < ifa->flood_queue_used; i++)
ifa->flood_queue[i]->ret_count--;
ospf_iface_sm(ifa, ISM_DOWN); ospf_iface_sm(ifa, ISM_DOWN);
rem_node(NODE ifa); rem_node(NODE ifa);
rfree(ifa->pool); rfree(ifa->pool);

View file

@ -1177,9 +1177,7 @@ use_gw_for_fwaddr(struct ospf_proto *p, ip_addr gw, struct iface *iface)
WALK_LIST(ifa, p->iface_list) WALK_LIST(ifa, p->iface_list)
if ((ifa->iface == iface) && if ((ifa->iface == iface) &&
((ifa->type == OSPF_IT_BCAST) || (ifa->type == OSPF_IT_NBMA)) && (!ospf_is_v2(p) || ipa_in_net(gw, ifa->addr->prefix, ifa->addr->pxlen)))
(!ospf_is_v2(p) || ipa_in_net(gw, ifa->addr->prefix, ifa->addr->pxlen)) &&
(!ifa->cf->stub))
return 1; return 1;
return 0; return 0;