diff options
Diffstat (limited to 'isisd/isis_circuit.c')
| -rw-r--r-- | isisd/isis_circuit.c | 6 |
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); } |
