|
@@ -41,6 +41,7 @@
|
|
/* init terminal so that we can grab keys */
|
|
/* init terminal so that we can grab keys */
|
|
static struct termios oldtty;
|
|
static struct termios oldtty;
|
|
static int old_fd0_flags;
|
|
static int old_fd0_flags;
|
|
|
|
+static int old_fd1_flags;
|
|
static bool stdio_in_use;
|
|
static bool stdio_in_use;
|
|
static bool stdio_allow_signal;
|
|
static bool stdio_allow_signal;
|
|
static bool stdio_echo_state;
|
|
static bool stdio_echo_state;
|
|
@@ -50,6 +51,8 @@ static void term_exit(void)
|
|
if (stdio_in_use) {
|
|
if (stdio_in_use) {
|
|
tcsetattr(0, TCSANOW, &oldtty);
|
|
tcsetattr(0, TCSANOW, &oldtty);
|
|
fcntl(0, F_SETFL, old_fd0_flags);
|
|
fcntl(0, F_SETFL, old_fd0_flags);
|
|
|
|
+ fcntl(1, F_SETFL, old_fd1_flags);
|
|
|
|
+ stdio_in_use = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -102,6 +105,7 @@ static void qemu_chr_open_stdio(Chardev *chr,
|
|
|
|
|
|
stdio_in_use = true;
|
|
stdio_in_use = true;
|
|
old_fd0_flags = fcntl(0, F_GETFL);
|
|
old_fd0_flags = fcntl(0, F_GETFL);
|
|
|
|
+ old_fd1_flags = fcntl(1, F_GETFL);
|
|
tcgetattr(0, &oldtty);
|
|
tcgetattr(0, &oldtty);
|
|
if (!g_unix_set_fd_nonblocking(0, true, NULL)) {
|
|
if (!g_unix_set_fd_nonblocking(0, true, NULL)) {
|
|
error_setg_errno(errp, errno, "Failed to set FD nonblocking");
|
|
error_setg_errno(errp, errno, "Failed to set FD nonblocking");
|