From b5ea184faa9f3edab377ae1dae6544b2d56575e5 Mon Sep 17 00:00:00 2001 From: LiFeng Date: Mon, 22 Jan 2018 06:13:52 -0500 Subject: [PATCH] Fix comments and add check in lxc_poll. Add check whether handler->conf->console.path is 'none' Signed-off-by: LiFeng --- src/lxc/start.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/lxc/start.c b/src/lxc/start.c index f952998aa..721dda3c6 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -485,19 +485,24 @@ int lxc_set_state(const char *name, struct lxc_handler *handler, int lxc_poll(const char *name, struct lxc_handler *handler) { int ret; - struct lxc_console *console = &handler->conf->console; + bool has_console = true; struct lxc_epoll_descr descr, descr_console; + if (handler->conf->console.path && !strcmp(handler->conf->console.path, "none")) + has_console = false; + ret = lxc_mainloop_open(&descr); if (ret < 0) { ERROR("Failed to create mainloop"); goto out_sigfd; } - ret = lxc_mainloop_open(&descr_console); - if (ret < 0) { - ERROR("Failed to create console mainloop"); - goto out_mainloop; + if (has_console) { + ret = lxc_mainloop_open(&descr_console); + if (ret < 0) { + ERROR("Failed to create console mainloop"); + goto out_mainloop; + } } ret = lxc_mainloop_add_handler(&descr, handler->sigfd, signal_handler, handler); @@ -517,16 +522,20 @@ int lxc_poll(const char *name, struct lxc_handler *handler) #endif } - ret = lxc_console_mainloop_add(&descr, console); - if (ret < 0) { - ERROR("Failed to add console handlers to mainloop"); - goto out_mainloop_console; - } + if (has_console) { + struct lxc_console *console = &handler->conf->console; - ret = lxc_console_mainloop_add(&descr_console, console); - if (ret < 0) { - ERROR("Failed to add console handlers to console mainloop"); - goto out_mainloop_console; + ret = lxc_console_mainloop_add(&descr, console); + if (ret < 0) { + ERROR("Failed to add console handlers to mainloop"); + goto out_mainloop_console; + } + + ret = lxc_console_mainloop_add(&descr_console, console); + if (ret < 0) { + ERROR("Failed to add console handlers to console mainloop"); + goto out_mainloop_console; + } } ret = lxc_cmd_mainloop_add(name, &descr, handler); @@ -543,11 +552,14 @@ int lxc_poll(const char *name, struct lxc_handler *handler) if (ret < 0 || !handler->init_died) goto out_mainloop_console; - ret = lxc_mainloop(&descr_console, 0); + if (has_console) + ret = lxc_mainloop(&descr_console, 0); out_mainloop_console: - lxc_mainloop_close(&descr_console); - TRACE("Closed console mainloop"); + if (has_console) { + lxc_mainloop_close(&descr_console); + TRACE("Closed console mainloop"); + } out_mainloop: lxc_mainloop_close(&descr); -- 2.47.2