diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-09-11 21:38:11 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-09-11 21:38:11 +0200 |
commit | 13cb667dc2c4131663e728bfc4bf3de465d52b20 (patch) | |
tree | b81475679207a5da2475d6dc146b387931627c38 /proto-shell.c | |
parent | 924d9c4e48ed2044efe712eac9cd170f4da4b447 (diff) |
add a protocol event for link loss
Diffstat (limited to 'proto-shell.c')
-rw-r--r-- | proto-shell.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/proto-shell.c b/proto-shell.c index 1481b66..bb42c98 100644 --- a/proto-shell.c +++ b/proto-shell.c @@ -60,15 +60,6 @@ run_script(const char **argv, struct uloop_process *proc) return 0; } -static void -proto_shell_set_down(struct proto_shell_state *state) -{ - if (!state->l3_dev.dev) - return; - - device_remove_user(&state->l3_dev); -} - static int proto_shell_handler(struct interface_proto_state *proto, enum interface_proto_cmd cmd, bool force) @@ -145,8 +136,8 @@ proto_shell_teardown_cb(struct uloop_process *p, int ret) struct proto_shell_state *state; state = container_of(p, struct proto_shell_state, teardown_task); - proto_shell_set_down(state); state->proto.proto_event(&state->proto, IFPEV_DOWN); + device_remove_user(&state->l3_dev); } static void @@ -194,7 +185,7 @@ proto_shell_notify(struct interface_proto_state *proto, struct blob_attr *attr) state->proto.iface->l3_dev = &state->l3_dev; state->proto.proto_event(&state->proto, IFPEV_UP); } else { - proto_shell_set_down(state); + state->proto.proto_event(&state->proto, IFPEV_LINK_LOST); } return 0; |