diff options
Diffstat (limited to 'isisd/isis_circuit.c')
| -rw-r--r-- | isisd/isis_circuit.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index d8ca694d59..b9ebf52505 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -1226,8 +1226,10 @@ isis_interface_config_write (struct vty *vty) struct isis_circuit * isis_circuit_create (struct isis_area *area, struct interface *ifp) { - struct isis_circuit *circuit; - circuit = isis_csm_state_change (ISIS_ENABLE, NULL, area); + struct isis_circuit *circuit = circuit_scan_by_ifp (ifp); + if (circuit && circuit->area) + return NULL; + circuit = isis_csm_state_change (ISIS_ENABLE, circuit, area); assert (circuit->state == C_STATE_CONF || circuit->state == C_STATE_UP); isis_circuit_if_bind (circuit, ifp); return circuit; |
