From e7d43b3cc30764138c90eaaf95d3d8f49e448890 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 18 Dec 2013 18:14:10 +0100 Subject: [PATCH] ptyfwd: make master terminal attributes raw, too --- src/shared/ptyfwd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/shared/ptyfwd.c b/src/shared/ptyfwd.c index 72aa59efb..85fc8f1b3 100644 --- a/src/shared/ptyfwd.c +++ b/src/shared/ptyfwd.c @@ -343,8 +343,8 @@ static int process_pty_loop(int master, sigset_t *mask, pid_t kill_pid, int sign int process_pty(int master, sigset_t *mask, pid_t kill_pid, int signo) { struct termios saved_stdin_attr, raw_stdin_attr; struct termios saved_stdout_attr, raw_stdout_attr; - bool saved_stdin = false; - bool saved_stdout = false; + struct termios master_attr; + bool saved_stdin = false, saved_stdout = false; struct winsize ws; int r; @@ -369,6 +369,11 @@ int process_pty(int master, sigset_t *mask, pid_t kill_pid, int signo) { tcsetattr(STDOUT_FILENO, TCSANOW, &raw_stdout_attr); } + if (tcgetattr(master, &master_attr) >= 0) { + cfmakeraw(&master_attr); + tcsetattr(master, TCSANOW, &master_attr); + } + r = process_pty_loop(master, mask, kill_pid, signo); if (saved_stdout) -- 2.30.2