summaryrefslogtreecommitdiff
path: root/proto/ospf/iface.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/iface.c')
-rw-r--r--proto/ospf/iface.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c
index dfc892aa..656184c6 100644
--- a/proto/ospf/iface.c
+++ b/proto/ospf/iface.c
@@ -281,10 +281,16 @@ void
ospf_iface_remove(struct ospf_iface *ifa)
{
struct ospf_proto *p = ifa->oa->po;
+ int i;
if (ifa->type == OSPF_IT_VLINK)
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);
rem_node(NODE ifa);
rfree(ifa->pool);