From 68d18db8d854ff395052684fa0245f4b3fdac9ae Mon Sep 17 00:00:00 2001 From: Patrick Toomey Date: Thu, 27 Aug 2015 16:21:35 -0600 Subject: [PATCH] Add support for get_config_item and set_config_item Signed-off-by: Patrick Toomey --- src/lxc/confile.c | 4 ++++ src/tests/get_item.c | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/lxc/confile.c b/src/lxc/confile.c index bb39ee05e..105224158 100644 --- a/src/lxc/confile.c +++ b/src/lxc/confile.c @@ -2510,6 +2510,10 @@ int lxc_get_config_item(struct lxc_conf *c, const char *key, char *retv, return lxc_get_item_environment(c, retv, inlen); else if (strcmp(key, "lxc.init_cmd") == 0) v = c->init_cmd; + else if (strcmp(key, "lxc.init_uid") == 0) + return lxc_get_conf_int(c, retv, inlen, c->init_uid); + else if (strcmp(key, "lxc.init_gid") == 0) + return lxc_get_conf_int(c, retv, inlen, c->init_gid); else return -1; if (!v) diff --git a/src/tests/get_item.c b/src/tests/get_item.c index 943583cdd..270ced908 100644 --- a/src/tests/get_item.c +++ b/src/tests/get_item.c @@ -88,6 +88,32 @@ int main(int argc, char *argv[]) } printf("lxc.arch returned %d %s\n", ret, v2); + if (!c->set_config_item(c, "lxc.init_uid", "100")) { + fprintf(stderr, "%d: failed to set init_uid\n", __LINE__); + ret = 1; + goto out; + } + ret = c->get_config_item(c, "lxc.init_uid", v2, 255); + if (ret < 0) { + fprintf(stderr, "%d: get_config_item(lxc.init_uid) returned %d\n", __LINE__, ret); + ret = 1; + goto out; + } + printf("lxc.init_uid returned %d %s\n", ret, v2); + + if (!c->set_config_item(c, "lxc.init_gid", "100")) { + fprintf(stderr, "%d: failed to set init_gid\n", __LINE__); + ret = 1; + goto out; + } + ret = c->get_config_item(c, "lxc.init_gid", v2, 255); + if (ret < 0) { + fprintf(stderr, "%d: get_config_item(lxc.init_gid) returned %d\n", __LINE__, ret); + ret = 1; + goto out; + } + printf("lxc.init_gid returned %d %s\n", ret, v2); + #define HNAME "hostname1" // demonstrate proper usage: char *alloced; -- 2.47.2