From e5adb2b5593fafbd088f232568af72fe9a9b1406 Mon Sep 17 00:00:00 2001 From: duguhaotian Date: Tue, 26 Jun 2018 09:57:04 +0800 Subject: [PATCH] clear ONLCR flag for container pty now container pty output log, use \r\n as a newline flag. This is a windows type, so we need to change it. By clear ONLCR can reach it. Signed-off-by: duguhaotian --- src/lxc/attach.c | 8 ++++++++ src/lxc/terminal.c | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/src/lxc/attach.c b/src/lxc/attach.c index 429a5d86c..0478092ca 100644 --- a/src/lxc/attach.c +++ b/src/lxc/attach.c @@ -24,6 +24,7 @@ #define _GNU_SOURCE #include #include +#include #include #include #include @@ -979,6 +980,7 @@ static int lxc_attach_terminal(struct lxc_conf *conf, struct lxc_terminal *terminal) { int ret; + struct termios oldtios; lxc_terminal_init(terminal); @@ -988,6 +990,12 @@ static int lxc_attach_terminal(struct lxc_conf *conf, return -1; } + ret = lxc_setup_tios(terminal->master, &oldtios); + if (ret < 0) { + SYSERROR("Failed to setup terminal"); + return -1; + } + /* Shift ttys to container. */ ret = lxc_terminal_map_ids(conf, terminal); if (ret < 0) { diff --git a/src/lxc/terminal.c b/src/lxc/terminal.c index eb745c5ff..9972e1978 100644 --- a/src/lxc/terminal.c +++ b/src/lxc/terminal.c @@ -509,6 +509,7 @@ int lxc_setup_tios(int fd, struct termios *oldtios) #ifdef IEXTEN newtios.c_lflag &= ~IEXTEN; #endif + newtios.c_oflag &= ~ONLCR; newtios.c_oflag |= OPOST; newtios.c_cc[VMIN] = 1; newtios.c_cc[VTIME] = 0; @@ -897,6 +898,7 @@ int lxc_terminal_setup(struct lxc_conf *conf) { int ret; struct lxc_terminal *terminal = &conf->console; + struct termios oldtios; if (terminal->path && strcmp(terminal->path, "none") == 0) { INFO("No terminal requested"); @@ -907,6 +909,10 @@ int lxc_terminal_setup(struct lxc_conf *conf) if (ret < 0) return -1; + ret = lxc_setup_tios(terminal->master, &oldtios); + if (ret < 0) + return -1; + ret = lxc_terminal_create_log_file(terminal); if (ret < 0) goto err; -- 2.47.2