summaryrefslogtreecommitdiff
path: root/isisd/isis_redist.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_redist.c')
-rw-r--r--isisd/isis_redist.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/isisd/isis_redist.c b/isisd/isis_redist.c
index e6c7a734bd..240be27cf3 100644
--- a/isisd/isis_redist.c
+++ b/isisd/isis_redist.c
@@ -167,8 +167,7 @@ static void isis_redist_update_ext_reach(struct isis_area *area, int level,
area_info.metric = redist->metric;
if (redist->map_name) {
- map_ret =
- route_map_apply(redist->map, p, RMAP_ISIS, &area_info);
+ map_ret = route_map_apply(redist->map, p, &area_info);
if (map_ret == RMAP_DENYMATCH)
area_info.distance = 255;
}
@@ -380,6 +379,19 @@ static void isis_redist_update_zebra_subscriptions(struct isis *isis)
}
}
+void isis_redist_free(struct isis *isis)
+{
+ int i;
+
+ for (i = 0; i < REDIST_PROTOCOL_COUNT; i++) {
+ if (!isis->ext_info[i])
+ continue;
+
+ route_table_finish(isis->ext_info[i]);
+ isis->ext_info[i] = NULL;
+ }
+}
+
void isis_redist_set(struct isis_area *area, int level, int family, int type,
uint32_t metric, const char *routemap, int originate_type)
{