diff options
-rw-r--r-- | src/lxc/lxc_console.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lxc/lxc_console.c b/src/lxc/lxc_console.c index 8bdf6b1..d6ba7e4 100644 --- a/src/lxc/lxc_console.c +++ b/src/lxc/lxc_console.c @@ -141,7 +141,6 @@ int main(int argc, char *argv[]) /* let's proxy the tty */ for (;;) { - char c; struct pollfd pfd[2] = { { .fd = 0, .events = POLLIN|POLLPRI, @@ -161,6 +160,7 @@ int main(int argc, char *argv[]) /* read the "stdin" and write that to the master */ if (pfd[0].revents & POLLIN) { + char c; if (read(0, &c, 1) < 0) { SYSERROR("failed to read"); goto out_err; @@ -188,12 +188,14 @@ int main(int argc, char *argv[]) /* read the master and write to "stdout" */ if (pfd[1].revents & POLLIN) { - if (read(master, &c, 1) < 0) { + char buf[1024]; + int r; + r = read(master, buf, sizeof(buf)); + if (r < 0) { SYSERROR("failed to read"); goto out_err; } - printf("%c", c); - fflush(stdout); + write(1, buf, r); } } out: |