summaryrefslogtreecommitdiffstats
path: root/wrapper.c
diff options
context:
space:
mode:
authorDhaval Giani <dhaval@linux.vnet.ibm.com>2008-08-12 08:16:43 +0000
committerDhaval Giani <dhaval@linux.vnet.ibm.com>2008-08-12 08:16:43 +0000
commit2e920dd947b8f6a58d89a93bd0326e513b335487 (patch)
tree5fe7de3588929084b95f365e34cf8a4a1d52a7a0 /wrapper.c
parent0bf95e05d806339a9a79fb2ed20e8a6703eb6cd4 (diff)
downloadlibcg-2e920dd947b8f6a58d89a93bd0326e513b335487.tar.gz
libcg-2e920dd947b8f6a58d89a93bd0326e513b335487.tar.xz
libcg-2e920dd947b8f6a58d89a93bd0326e513b335487.zip
libcgroup: Add API to get the cgroup from name (Breaks existing API)
This patch breaks API. There are no known users at the moment so it is fine. cgroup_new_cgroup now takes in only a name argument. The uids and gids are set by a new API, cgroup_?et_uid_gid() Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com> Acked-by: Vivek Goyal <vgoyal@redhat.com> git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@125 4f4bb910-9a46-0410-90c8-c897d4f1cd53
Diffstat (limited to 'wrapper.c')
-rw-r--r--wrapper.c36
1 files changed, 29 insertions, 7 deletions
diff --git a/wrapper.c b/wrapper.c
index 5aaabe7..62c257f 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -22,8 +22,7 @@
#include <string.h>
#include <unistd.h>
-struct cgroup *cgroup_new_cgroup(const char *name, uid_t tasks_uid,
- gid_t tasks_gid, uid_t control_uid, gid_t control_gid)
+struct cgroup *cgroup_new_cgroup(const char *name)
{
struct cgroup *cgroup = (struct cgroup *)
malloc(sizeof(struct cgroup));
@@ -32,11 +31,6 @@ struct cgroup *cgroup_new_cgroup(const char *name, uid_t tasks_uid,
return NULL;
strncpy(cgroup->name, name, sizeof(cgroup->name));
- cgroup->tasks_uid = tasks_uid;
- cgroup->tasks_gid = tasks_gid;
- cgroup->control_uid = control_uid;
- cgroup->control_gid = control_gid;
- cgroup->index = 0;
return cgroup;
}
@@ -291,3 +285,31 @@ int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b)
}
return 0;
}
+
+int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid,
+ uid_t control_uid, gid_t control_gid)
+{
+ if (!cgroup)
+ return ECGINVAL;
+
+ cgroup->tasks_uid = tasks_uid;
+ cgroup->tasks_gid = tasks_gid;
+ cgroup->control_uid = control_uid;
+ cgroup->control_gid = control_gid;
+
+ return 0;
+}
+
+int cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid,
+ gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid)
+{
+ if (!cgroup)
+ return ECGINVAL;
+
+ *tasks_uid = cgroup->tasks_uid;
+ *tasks_gid = cgroup->tasks_gid;
+ *control_uid = cgroup->control_uid;
+ *control_gid = cgroup->control_uid;
+
+ return 0;
+}