[lxc-devel] [PATCH 1/1] set close-all-fds by default
Serge Hallyn
serge.hallyn at ubuntu.com
Fri Jan 9 16:33:42 UTC 2015
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 at ubuntu.com>
---
src/lxc/lxccontainer.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
index 406cead..878c483 100644
--- a/src/lxc/lxccontainer.c
+++ b/src/lxc/lxccontainer.c
@@ -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
--
2.1.0
More information about the lxc-devel
mailing list