]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
libcgroup: Add API to get the cgroup from name (Breaks existing API)
authorDhaval Giani <dhaval@linux.vnet.ibm.com>
Tue, 12 Aug 2008 08:16:43 +0000 (08:16 +0000)
committerDhaval Giani <dhaval@linux.vnet.ibm.com>
Tue, 12 Aug 2008 08:16:43 +0000 (08:16 +0000)
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

libcgroup.h
wrapper.c

index 508fe48617b554ff14bebdc12f45df88fd7e436d..80cdfa0d0ebc418f411d3c4d673cf81049e60930 100644 (file)
@@ -170,8 +170,7 @@ struct cgroup *cgroup_get_cgroup(struct cgroup *cgroup);
 
 /* The wrappers for filling libcg structures */
 
-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_controller *cgroup_add_controller(struct cgroup *cgroup,
                                                const char *name);
 void cgroup_free(struct cgroup **cgroup);
@@ -186,6 +185,10 @@ int cgroup_add_value_bool(struct cgroup_controller *controller,
 int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b);
 int cgroup_compare_controllers(struct cgroup_controller *cgca,
                                        struct cgroup_controller *cgcb);
+int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid,
+                                       uid_t control_uid, gid_t control_gid);
+int cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid,
+               gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid);
 
 __END_DECLS
 
index 5aaabe74d8916fcfaff5e80313958beb16c278ca..62c257f811615a63ce1afa9e8aebb2310ea3910f 100644 (file)
--- 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;
+}