]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
confile: add clearer for lxc.start.*
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 31 May 2017 16:19:23 +0000 (18:19 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Wed, 31 May 2017 16:19:23 +0000 (18:19 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/confile.c

index 807c46a44b68622cc8202c538a5f67f983f1333b..2c4fc44a3a030ce6ba5168a3ad98dc18e1699699 100644 (file)
@@ -214,6 +214,7 @@ static int clr_config_stopsignal(const char *, struct lxc_conf *);
 
 static int set_config_start(const char *, const char *, struct lxc_conf *);
 static int get_config_start(const char *, char *, int, struct lxc_conf *);
+static int clr_config_start(const char *, struct lxc_conf *);
 
 static int set_config_syslog(const char *, const char *, struct lxc_conf *);
 static int get_config_syslog(const char *, char *, int, struct lxc_conf *);
@@ -304,9 +305,9 @@ static struct lxc_config_t config[] = {
        { "lxc.haltsignal",           set_config_haltsignal,           get_config_haltsignal,        clr_config_haltsignal,        },
        { "lxc.rebootsignal",         set_config_rebootsignal,         get_config_rebootsignal,      clr_config_rebootsignal,      },
        { "lxc.stopsignal",           set_config_stopsignal,           get_config_stopsignal,        clr_config_stopsignal,        },
-       { "lxc.start.auto",           set_config_start,                get_config_start,             NULL },
-       { "lxc.start.delay",          set_config_start,                get_config_start,             NULL },
-       { "lxc.start.order",          set_config_start,                get_config_start,             NULL },
+       { "lxc.start.auto",           set_config_start,                get_config_start,             clr_config_start,             },
+       { "lxc.start.delay",          set_config_start,                get_config_start,             clr_config_start,             },
+       { "lxc.start.order",          set_config_start,                get_config_start,             clr_config_start,             },
        { "lxc.monitor.unshare",      set_config_monitor,              get_config_monitor,           NULL },
        { "lxc.group",                set_config_group,                get_config_group,             NULL },
        { "lxc.environment",          set_config_environment,          get_config_environment,       NULL },
@@ -2795,15 +2796,6 @@ int lxc_clear_config_item(struct lxc_conf *c, const char *key)
                free(c->syslog);
                c->syslog = NULL;
 
-       } else if (strcmp(key, "lxc.start.auto") == 0) {
-               c->start_auto = 0;
-
-       } else if (strcmp(key, "lxc.start.delay") == 0) {
-               c->start_delay = 0;
-
-       } else if (strcmp(key, "lxc.start.order") == 0) {
-               c->start_order = 0;
-
        } else if (strcmp(key, "lxc.no_new_privs") == 0) {
                c->no_new_privs = false;
 
@@ -3859,11 +3851,11 @@ static int get_config_stopsignal(const char *key, char *retv, int inlen,
 static int get_config_start(const char *key, char *retv, int inlen,
                            struct lxc_conf *c)
 {
-       if (strcmp(key, "lxc.start.auto") == 0)
+       if (strcmp(key + 10, "auto") == 0)
                return lxc_get_conf_int(c, retv, inlen, c->start_auto);
-       else if (strcmp(key, "lxc.start.delay") == 0)
+       else if (strcmp(key + 10, "delay") == 0)
                return lxc_get_conf_int(c, retv, inlen, c->start_delay);
-       else if (strcmp(key, "lxc.start.order") == 0)
+       else if (strcmp(key + 10, "order") == 0)
                return lxc_get_conf_int(c, retv, inlen, c->start_order);
 
        return -1;
@@ -4207,3 +4199,15 @@ static inline int clr_config_stopsignal(const char *key, struct lxc_conf *c)
        c->stopsignal = 0;
        return 0;
 }
+
+static inline int clr_config_start(const char *key, struct lxc_conf *c)
+{
+       if (strcmp(key + 10, "auto") == 0)
+               c->start_auto = 0;
+       else if (strcmp(key + 10, "delay") == 0)
+               c->start_delay = 0;
+       else if (strcmp(key + 10, "order") == 0)
+               c->start_order = 0;
+
+       return 0;
+}