summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isisd/isis_circuit.c3
-rw-r--r--isisd/isis_vty.c9
2 files changed, 10 insertions, 2 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index efed420161..728cbdc67d 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1230,7 +1230,8 @@ isis_circuit_create (struct isis_area *area, struct interface *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);
+ if (circuit->state != C_STATE_CONF && circuit->state != C_STATE_UP)
+ return circuit;
isis_circuit_if_bind (circuit, ifp);
return circuit;
}
diff --git a/isisd/isis_vty.c b/isisd/isis_vty.c
index f9b96a42d8..4148eb55b9 100644
--- a/isisd/isis_vty.c
+++ b/isisd/isis_vty.c
@@ -86,9 +86,16 @@ DEFUN (ip_router_isis,
if (!area)
area = isis_area_create (area_tag);
- if (!circuit || !circuit->area)
+ if (!circuit || !circuit->area) {
circuit = isis_circuit_create (area, ifp);
+ if (circuit->state != C_STATE_CONF && circuit->state != C_STATE_UP)
+ {
+ vty_out(vty, "Couldn't bring up interface, please check log.%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
bool ip = circuit->ip_router, ipv6 = circuit->ipv6_router;
if (af[2] != '\0')
ipv6 = true;