diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-10-29 23:08:01 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-10-29 23:08:01 +0100 |
commit | c173c610044890c539584f3beb927e71ff83c198 (patch) | |
tree | acdedacb864ba6bbabe6bc928ed83a0dc22b78be /proto-shell.c | |
parent | a9fd870450e82f31cba681651656276dfc1c39ac (diff) |
use FD_CLOEXEC instead of tracking lists of fds
Diffstat (limited to 'proto-shell.c')
-rw-r--r-- | proto-shell.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/proto-shell.c b/proto-shell.c index ae0f938..2a5eda0 100644 --- a/proto-shell.c +++ b/proto-shell.c @@ -30,8 +30,9 @@ #include "interface.h" #include "interface-ip.h" #include "proto.h" +#include "system.h" -static struct netifd_fd proto_fd; +static int proto_fd = -1; enum proto_shell_sm { S_IDLE, @@ -704,10 +705,10 @@ proto_shell_attach(const struct proto_handler *h, struct interface *iface, state->proto.cb = proto_shell_handler; state->teardown_timeout.cb = proto_shell_teardown_timeout_cb; state->script_task.cb = proto_shell_script_cb; - state->script_task.dir_fd = proto_fd.fd; + state->script_task.dir_fd = proto_fd; state->script_task.log_prefix = iface->name; state->proto_task.cb = proto_shell_task_cb; - state->proto_task.dir_fd = proto_fd.fd; + state->proto_task.dir_fd = proto_fd; state->proto_task.log_prefix = iface->name; state->handler = container_of(h, struct proto_shell_handler, proto); @@ -907,11 +908,11 @@ static void __init proto_shell_init(void) if (chdir("./proto")) goto close_cur; - proto_fd.fd = open(".", O_RDONLY | O_DIRECTORY); - if (proto_fd.fd < 0) + proto_fd = open(".", O_RDONLY | O_DIRECTORY); + if (proto_fd < 0) goto close_cur; - netifd_fd_add(&proto_fd); + system_fd_set_cloexec(proto_fd); glob("./*.sh", 0, NULL, &g); for (i = 0; i < g.gl_pathc; i++) proto_shell_add_script(g.gl_pathv[i]); |