Commit a97297d8 authored by Hans dedecker's avatar Hans dedecker Committed by Hans Dedecker

interface: set interface in TEARDOWN state when checking link state

When launching PROTO_CMD_TEARDOWN in interface_check_state() the interface
was set in IFS_DOWN state. In case an interface is now brought into IFS_SETUP
state in __interface_set_up() it will launch PROTO_CMD_SETUP trying to
bring the proto shell handler in S_SETUP state which will fail as the proto
shell handler is still in the S_TEARDOWN state.

Fix this by setting the interface in IFS_TEARDOWN state when the PROTO_CMD_TEARDOWN
event is launched which will prevent the interface being brought into IFS_SETUP state
as long as it's not in the IFS_DOWN state.
Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
parent 34a70b62
......@@ -342,11 +342,11 @@ interface_check_state(struct interface *iface)
case IFS_UP:
case IFS_SETUP:
if (!iface->enabled || !link_state) {
interface_proto_event(iface->proto, PROTO_CMD_TEARDOWN, false);
iface->state = IFS_TEARDOWN;
if (iface->dynamic)
__set_config_state(iface, IFC_REMOVE);
mark_interface_down(iface);
interface_proto_event(iface->proto, PROTO_CMD_TEARDOWN, false);
}
break;
case IFS_DOWN:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment