From 150852928a0bd951184223567ead4cd3f7da3a11 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Wed, 28 Feb 2018 12:42:31 +0100 Subject: [PATCH] terminal: lxc_terminal_stdin_cb() Signed-off-by: Christian Brauner --- src/lxc/terminal.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lxc/terminal.c b/src/lxc/terminal.c index 2996206cc..7423b70bd 100644 --- a/src/lxc/terminal.c +++ b/src/lxc/terminal.c @@ -963,22 +963,24 @@ int lxc_terminal_set_stdfds(int fd) } int lxc_terminal_stdin_cb(int fd, uint32_t events, void *cbdata, - struct lxc_epoll_descr *descr) + struct lxc_epoll_descr *descr) { - struct lxc_terminal_state *ts = cbdata; + int ret; char c; + struct lxc_terminal_state *ts = cbdata; if (fd != ts->stdinfd) return LXC_MAINLOOP_CLOSE; - if (lxc_read_nointr(ts->stdinfd, &c, 1) <= 0) + ret = lxc_read_nointr(ts->stdinfd, &c, 1); + if (ret <= 0) return LXC_MAINLOOP_CLOSE; if (ts->escape >= 1) { /* we want to exit the terminal with Ctrl+a q */ if (c == ts->escape && !ts->saw_escape) { ts->saw_escape = 1; - return 0; + return LXC_MAINLOOP_CONTINUE; } if (c == 'q' && ts->saw_escape) @@ -987,10 +989,11 @@ int lxc_terminal_stdin_cb(int fd, uint32_t events, void *cbdata, ts->saw_escape = 0; } - if (lxc_write_nointr(ts->masterfd, &c, 1) <= 0) + ret = lxc_write_nointr(ts->masterfd, &c, 1); + if (ret <= 0) return LXC_MAINLOOP_CLOSE; - return 0; + return LXC_MAINLOOP_CONTINUE; } int lxc_terminal_master_cb(int fd, uint32_t events, void *cbdata, -- 2.47.3