From 3d49dba94c7a2ebaa8626acf81ca74a22c7784f7 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 14 May 2012 22:45:21 +0200 Subject: add a command for allowing the setup task to schedule a restart --- proto-shell.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'proto-shell.c') diff --git a/proto-shell.c b/proto-shell.c index 6b38ee9..5309a55 100644 --- a/proto-shell.c +++ b/proto-shell.c @@ -624,6 +624,22 @@ proto_shell_add_host_dependency(struct proto_shell_state *state, struct blob_att return 0; } +static int +proto_shell_setup_failed(struct proto_shell_state *state) +{ + switch (state->sm) { + case S_IDLE: + state->proto.proto_event(&state->proto, IFPEV_LINK_LOST); + /* fall through */ + case S_SETUP: + proto_shell_handler(&state->proto, PROTO_CMD_TEARDOWN, false); + break; + default: + break; + } + return 0; +} + static int proto_shell_notify(struct interface_proto_state *proto, struct blob_attr *attr) { @@ -651,6 +667,8 @@ proto_shell_notify(struct interface_proto_state *proto, struct blob_attr *attr) return proto_shell_set_available(state, tb); case 6: return proto_shell_add_host_dependency(state, tb); + case 7: + return proto_shell_setup_failed(state); default: return UBUS_STATUS_INVALID_ARGUMENT; } -- cgit v1.2.1