]> git.proxmox.com Git - mirror_lxc.git/commitdiff
set close-all-fds by default
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Fri, 9 Jan 2015 16:33:42 +0000 (16:33 +0000)
committerStéphane Graber <stgraber@ubuntu.com>
Mon, 12 Jan 2015 21:26:08 +0000 (16:26 -0500)
When containers request to be daemonized, close-all-fd is
set to true.  But when we switched ot daemonize-by-default we didn't
set close-all-fd by default.

Fix that.  In order to do that we have to always have a lxc_conf
object.  As a consequence, after this patch we can drop a bunch
of checks for c->lxc_conf existing.  We should consider removing
those.  This patch does not do that.

This should close https://github.com/lxc/lxc/issues/354

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/lxccontainer.c

index 406cead1590f4be0f4cfc6fe06580b62f22b8b81..5bb6152c1cc78f6375ace6eaf7d0970b3f0f62f3 100644 (file)
@@ -457,6 +457,14 @@ static bool lxcapi_load_config(struct lxc_container *c, const char *alt_file)
        return ret;
 }
 
+static void do_set_daemonize(struct lxc_container *c, bool state)
+{
+       c->daemonize = state;
+       /* daemonize implies close_all_fds so set it */
+       if (state)
+               c->lxc_conf->close_all_fds = 1;
+}
+
 static bool lxcapi_want_daemonize(struct lxc_container *c, bool state)
 {
        if (!c || !c->lxc_conf)
@@ -465,10 +473,7 @@ static bool lxcapi_want_daemonize(struct lxc_container *c, bool state)
                ERROR("Error getting mem lock");
                return false;
        }
-       c->daemonize = state;
-       /* daemonize implies close_all_fds so set it */
-       if (state == 1)
-               c->lxc_conf->close_all_fds = 1;
+       do_set_daemonize(c, state);
        container_mem_unlock(c);
        return true;
 }
@@ -4098,7 +4103,9 @@ struct lxc_container *lxc_container_new(const char *name, const char *configpath
                container_destroy(c);
                lxcapi_clear_config(c);
        }
-       c->daemonize = true;
+       if (!c->lxc_conf)
+               c->lxc_conf = lxc_conf_init();
+       do_set_daemonize(c, true);
        c->pidfile = NULL;
 
        // assign the member functions