diff options
author | lns <matzeton@googlemail.com> | 2018-08-07 16:53:29 +0200 |
---|---|---|
committer | lns <matzeton@googlemail.com> | 2018-08-07 16:53:29 +0200 |
commit | f8497db5d14eb139820173dccba58989c4f9ca5c (patch) | |
tree | 3677066a9f8b4aa55e7ba826e2a1e514adc666e1 /src/jail.c | |
parent | b247c23d23dc646749872423f9ebc6d5c165566d (diff) |
use potd event buffer as epoll data instead of a fd
Signed-off-by: lns <matzeton@googlemail.com>
Diffstat (limited to 'src/jail.c')
-rw-r--r-- | src/jail.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -87,11 +87,13 @@ typedef struct client_event { static int jail_mainloop(event_ctx **ev_ctx, const jail_ctx *ctx[], size_t siz) __attribute__((noreturn)); -static int jail_accept_client(event_ctx *ev_ctx, int fd, void *user_data); +static int jail_accept_client(event_ctx *ev_ctx, event_buf *buf, + void *user_data); static int jail_childfn(prisoner_process *ctx) __attribute__((noreturn)); static int jail_socket_tty(prisoner_process *ctx, int tty_fd); -static int jail_socket_tty_io(event_ctx *ev_ctx, int src_fd, void *user_data); +static int jail_socket_tty_io(event_ctx *ev_ctx, event_buf *buf, + void *user_data); static int jail_log_input(event_ctx *ev_ctx, int src_fd, int dst_fd, char *buf, size_t siz, void *user_data); @@ -231,17 +233,20 @@ static int jail_mainloop(event_ctx **ev_ctx, const jail_ctx *ctx[], size_t siz) exit(rc); } -static int jail_accept_client(event_ctx *ev_ctx, int fd, void *user_data) +static int jail_accept_client(event_ctx *ev_ctx, event_buf *buf, + void *user_data) { size_t i, rc = 0; - int s; + int s, fd; pid_t prisoner_pid; - server_event *ev_jail = (server_event *) user_data; + server_event *ev_jail; static prisoner_process *args; const jail_ctx *jail_ctx; (void) ev_ctx; - assert(ev_jail); + assert(ev_ctx && buf && user_data); + ev_jail = (server_event *) user_data; + fd = buf->fd; for (i = 0; i < ev_jail->siz; ++i) { jail_ctx = ev_jail->jail_ctx[i]; @@ -553,9 +558,9 @@ finish: } static int -jail_socket_tty_io(event_ctx *ev_ctx, int src_fd, void *user_data) +jail_socket_tty_io(event_ctx *ev_ctx, event_buf *buf, void *user_data) { - int dest_fd; + int dest_fd, src_fd = buf->fd; client_event *ev_cli = (client_event *) user_data; forward_state fwd_state; |