]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Read the config file at restart
authorDaniel Lezcano <dlezcano@fr.ibm.com>
Fri, 9 Oct 2009 09:38:38 +0000 (11:38 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Fri, 9 Oct 2009 09:38:38 +0000 (11:38 +0200)
This patch makes the configuration to read the configuration
file in order to pass the configuration to the different functions.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/Makefile.am
src/lxc/conf.c

index 641abf6cbc4555662ae5de16ddef541d87d1e8fb..eb90e3e495d865fc9317270ae0d115a1e1dd13c3 100644 (file)
@@ -37,6 +37,7 @@ liblxc_la_SOURCES = \
        lock.c lock.h \
        namespace.h namespace.c \
        conf.c conf.h \
+       confile.c confile.h \
        list.h \
        state.c state.h \
        log.c log.h \
@@ -88,7 +89,7 @@ lxc_unshare_LDADD = liblxc.la
 lxc_init_SOURCES = lxc_init.c
 lxc_init_LDADD = liblxc.la
 
-lxc_create_SOURCES = lxc_create.c confile.c confile.h
+lxc_create_SOURCES = lxc_create.c
 lxc_create_LDADD = liblxc.la
 
 lxc_destroy_SOURCES = lxc_destroy.c
@@ -100,7 +101,7 @@ lxc_start_LDADD = liblxc.la
 lxc_stop_SOURCES = lxc_stop.c
 lxc_stop_LDADD = liblxc.la
 
-lxc_execute_SOURCES = lxc_execute.c confile.c confile.h
+lxc_execute_SOURCES = lxc_execute.c
 lxc_execute_LDADD = liblxc.la
 
 lxc_monitor_SOURCES = lxc_monitor.c
index 78b2e24f2910cb6e65dd49ee0914e9a517891649..c00d407bb0cfa34183485a5769c3fa9e015c7371 100644 (file)
@@ -1850,6 +1850,8 @@ static long make_conf_flagset(const char *name, const char *cons,
        return flags;
 }
 
+extern int lxc_config_read(const char *file, struct lxc_conf *conf);
+
 int lxc_setup(const char *name, const char *cons,
              const struct lxc_tty_info *tty_info)
 
@@ -1858,6 +1860,24 @@ int lxc_setup(const char *name, const char *cons,
         * work after chrooting */
        long flags = make_conf_flagset(name, cons, tty_info);
 
+       struct lxc_conf lxc_conf;
+       char path[MAXPATHLEN];
+
+       if (lxc_conf_init(&lxc_conf)) {
+               ERROR("failed to initialize the configuration");
+               return -1;
+       }
+
+       snprintf(path, sizeof(path), LXCPATH "/%s/config", name);
+
+       if (!access(path, F_OK)) {
+
+               if (lxc_config_read(path, &lxc_conf)) {
+                       ERROR("failed to read the configuration file");
+                       return -1;
+               }
+       }
+
        if (conf_is_set(flags, utsname) && setup_utsname(name)) {
                ERROR("failed to setup the utsname for '%s'", name);
                return -1;