From: Hans Dedecker Date: Thu, 11 Aug 2016 13:53:26 +0000 (+0200) Subject: proto-shell: Model config parameter "no-proto-task" as a proto flag X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4789adf1e55cf51a8b556fba0c7c31bb5f430c7d;p=oweals%2Fnetifd.git proto-shell: Model config parameter "no-proto-task" as a proto flag Export the config parameter "no-proto-task" as a proto flag so it's available for other other netifd modules Signed-off-by: Hans Dedecker --- diff --git a/proto-shell.c b/proto-shell.c index 4391cdd..998a44c 100644 --- a/proto-shell.c +++ b/proto-shell.c @@ -44,7 +44,6 @@ struct proto_shell_handler { char *config_buf; char *script_name; bool init_available; - bool no_proto_task; struct uci_blob_param_list config; }; @@ -306,7 +305,7 @@ proto_shell_task_finish(struct proto_shell_state *state, if (state->renew_pending) proto_shell_handler(&state->proto, PROTO_CMD_RENEW, false); - else if (!state->handler->no_proto_task && + else if (!(state->handler->proto.flags & PROTO_FLAG_NO_TASK) && !state->proto_task.uloop.pending && state->sm == S_SETUP) proto_shell_handler(&state->proto, @@ -892,7 +891,8 @@ proto_shell_add_handler(const char *script, const char *name, json_object *obj) handler->proto.flags |= PROTO_FLAG_NODEV; tmp = json_get_field(obj, "no-proto-task", json_type_boolean); - handler->no_proto_task = tmp && json_object_get_boolean(tmp); + if (tmp && json_object_get_boolean(tmp)) + handler->proto.flags |= PROTO_FLAG_NO_TASK; tmp = json_get_field(obj, "available", json_type_boolean); if (tmp && json_object_get_boolean(tmp)) diff --git a/proto.h b/proto.h index 8f50fdc..26a54bd 100644 --- a/proto.h +++ b/proto.h @@ -39,6 +39,7 @@ enum { PROTO_FLAG_FORCE_LINK_DEFAULT = (1 << 4), PROTO_FLAG_LASTERROR = (1 << 5), PROTO_FLAG_TEARDOWN_ON_L3_LINK_DOWN = (1 << 6), + PROTO_FLAG_NO_TASK = (1 << 7), }; struct interface_proto_state {