summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_asbr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_asbr.c')
-rw-r--r--ospf6d/ospf6_asbr.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index c37d89bcb8..96dcdba68f 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -579,7 +579,7 @@ void ospf6_asbr_lsa_remove(struct ospf6_lsa *lsa,
if (ospf6_is_router_abr(ospf6))
oa = ospf6->backbone;
else
- oa = listgetdata(listhead(ospf6->area_list));
+ oa = listnode_head(ospf6->area_list);
if (oa == NULL)
return;
@@ -2302,10 +2302,14 @@ void ospf6_asbr_redistribute_reset(struct ospf6 *ospf6)
continue;
if (type == ZEBRA_ROUTE_OSPF6)
continue;
- if (ospf6_zebra_is_redistribute(type, ospf6->vrf_id)) {
- ospf6_asbr_redistribute_unset(ospf6, red, type);
- ospf6_redist_del(ospf6, red, type);
- }
+ ospf6_asbr_redistribute_unset(ospf6, red, type);
+ ospf6_redist_del(ospf6, red, type);
+ }
+ red = ospf6_redist_lookup(ospf6, DEFAULT_ROUTE, 0);
+ if (red) {
+ ospf6_asbr_routemap_unset(red);
+ ospf6_redist_del(ospf6, red, type);
+ ospf6_redistribute_default_set(ospf6, DEFAULT_ORIGINATE_NONE);
}
}