projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
device: add veth support
[project/netifd.git]
/
proto-shell.c
diff --git
a/proto-shell.c
b/proto-shell.c
index 4391cdd0cd2ca6e2b4a8c42e5e8d2630600ecb88..ef56aa808fc33e39fdf95a8bee50ecc35ec49316 100644
(file)
--- 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;
char *config_buf;
char *script_name;
bool init_available;
- bool no_proto_task;
struct uci_blob_param_list config;
};
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);
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,
!state->proto_task.uloop.pending &&
state->sm == S_SETUP)
proto_shell_handler(&state->proto,
@@
-539,10
+538,10
@@
proto_shell_update_link(struct proto_shell_state *state, struct blob_attr *data,
return UBUS_STATUS_UNKNOWN_ERROR;
device_set_present(dev, true);
return UBUS_STATUS_UNKNOWN_ERROR;
device_set_present(dev, true);
-
- interface_update_start(iface);
}
}
+ interface_update_start(iface, keep);
+
proto_apply_ip_settings(iface, data, addr_ext);
if ((cur = tb[NOTIFY_ROUTES]) != NULL)
proto_apply_ip_settings(iface, data, addr_ext);
if ((cur = tb[NOTIFY_ROUTES]) != NULL)
@@
-563,8
+562,7
@@
proto_shell_update_link(struct proto_shell_state *state, struct blob_attr *data,
interface_update_complete(state->proto.iface);
if ((state->sm != S_SETUP_ABORT) && (state->sm != S_TEARDOWN)) {
interface_update_complete(state->proto.iface);
if ((state->sm != S_SETUP_ABORT) && (state->sm != S_TEARDOWN)) {
- if (!keep)
- state->proto.proto_event(&state->proto, IFPEV_UP);
+ state->proto.proto_event(&state->proto, IFPEV_UP);
state->sm = S_IDLE;
}
state->sm = S_IDLE;
}
@@
-892,7
+890,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->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))
tmp = json_get_field(obj, "available", json_type_boolean);
if (tmp && json_object_get_boolean(tmp))