]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Fix comments and add check in lxc_poll.
authorLiFeng <lifeng68@huawei.com>
Mon, 22 Jan 2018 11:13:52 +0000 (06:13 -0500)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 6 Feb 2018 12:31:42 +0000 (13:31 +0100)
Add check whether handler->conf->console.path is 'none'

Signed-off-by: LiFeng <lifeng68@huawei.com>
src/lxc/start.c

index f952998aa0daa20407a823a3011fda69c8758836..721dda3c664d2bdd865350f9dda17e6814b5d987 100644 (file)
@@ -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);