From ea610a311902b56c6466d79332592ab7f3dc501a Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 26 May 2020 08:41:47 +0000 Subject: Pass the stdout file descriptor from the client as well as stdin and use them for control clients directly instead of passing everything via the client. --- client.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'client.c') diff --git a/client.c b/client.c index 841e581e..d1a31de7 100644 --- a/client.c +++ b/client.c @@ -402,6 +402,8 @@ client_main(struct event_base *base, int argc, char **argv, int flags, int feat) } else if (client_exitreason != CLIENT_EXIT_NONE) fprintf(stderr, "%s\n", client_exit_message()); setblocking(STDIN_FILENO, 1); + setblocking(STDOUT_FILENO, 1); + setblocking(STDERR_FILENO, 1); return (client_exitval); } @@ -429,6 +431,9 @@ client_send_identify(const char *ttynam, const char *cwd, int feat) if ((fd = dup(STDIN_FILENO)) == -1) fatal("dup failed"); proc_send(client_peer, MSG_IDENTIFY_STDIN, fd, NULL, 0); + if ((fd = dup(STDOUT_FILENO)) == -1) + fatal("dup failed"); + proc_send(client_peer, MSG_IDENTIFY_STDOUT, fd, NULL, 0); pid = getpid(); proc_send(client_peer, MSG_IDENTIFY_CLIENTPID, -1, &pid, sizeof pid); -- cgit v1.2.3