summaryrefslogtreecommitdiff
path: root/isisd/isis_circuit.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_circuit.c')
-rw-r--r--isisd/isis_circuit.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 95e02f8691..20ce0f1fad 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -293,6 +293,7 @@ void isis_circuit_del_addr(struct isis_circuit *circuit,
if (ip) {
listnode_delete(circuit->ip_addrs, ip);
+ prefix_ipv4_free(ip);
if (circuit->area)
lsp_regenerate_schedule(circuit->area,
circuit->is_type, 0);
@@ -328,6 +329,7 @@ void isis_circuit_del_addr(struct isis_circuit *circuit,
}
if (ip6) {
listnode_delete(circuit->ipv6_link, ip6);
+ prefix_ipv6_free(ip6);
found = 1;
}
} else {
@@ -339,6 +341,7 @@ void isis_circuit_del_addr(struct isis_circuit *circuit,
}
if (ip6) {
listnode_delete(circuit->ipv6_non_link, ip6);
+ prefix_ipv6_free(ip6);
found = 1;
}
}
@@ -1165,7 +1168,6 @@ void isis_circuit_af_set(struct isis_circuit *circuit, bool ip_router,
struct isis_area *area = circuit->area;
bool change = circuit->ip_router != ip_router
|| circuit->ipv6_router != ipv6_router;
- bool was_enabled = !!circuit->area;
area->ip_circuits += ip_router - circuit->ip_router;
area->ipv6_circuits += ipv6_router - circuit->ipv6_router;
@@ -1179,8 +1181,6 @@ void isis_circuit_af_set(struct isis_circuit *circuit, bool ip_router,
if (!ip_router && !ipv6_router)
isis_csm_state_change(ISIS_DISABLE, circuit, area);
- else if (!was_enabled)
- isis_csm_state_change(ISIS_ENABLE, circuit, area);
else
lsp_regenerate_schedule(circuit->area, circuit->is_type, 0);
}