From 2e920dd947b8f6a58d89a93bd0326e513b335487 Mon Sep 17 00:00:00 2001 From: Dhaval Giani Date: Tue, 12 Aug 2008 08:16:43 +0000 Subject: 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 Acked-by: Vivek Goyal git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@125 4f4bb910-9a46-0410-90c8-c897d4f1cd53 --- wrapper.c | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'wrapper.c') diff --git a/wrapper.c b/wrapper.c index 5aaabe7..62c257f 100644 --- a/wrapper.c +++ b/wrapper.c @@ -22,8 +22,7 @@ #include #include -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; +} -- cgit