diff options
author | Dhaval Giani <dhaval@linux.vnet.ibm.com> | 2008-08-12 08:16:43 +0000 |
---|---|---|
committer | Dhaval Giani <dhaval@linux.vnet.ibm.com> | 2008-08-12 08:16:43 +0000 |
commit | 2e920dd947b8f6a58d89a93bd0326e513b335487 (patch) | |
tree | 5fe7de3588929084b95f365e34cf8a4a1d52a7a0 /wrapper.c | |
parent | 0bf95e05d806339a9a79fb2ed20e8a6703eb6cd4 (diff) | |
download | libcg-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.c | 36 |
1 files changed, 29 insertions, 7 deletions
@@ -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; +} |