From: Daniel Wagner <[email protected]>
---
src/cgroup.c | 25 +++++++++++++++++++++++++
src/connman.h | 1 +
2 files changed, 26 insertions(+)
diff --git a/src/cgroup.c b/src/cgroup.c
index 483d527..cd4128b 100644
--- a/src/cgroup.c
+++ b/src/cgroup.c
@@ -201,6 +201,31 @@ int __connman_cgroup_rem_interface(int index)
return 0;
}
+int __connman_cgroup_set_route(int index, int pid)
+{
+ struct cgroup_info *info;
+ int err;
+
+ DBG("index %d pid %d", index, pid);
+
+ if (index < 0)
+ return cgroup_attach(CGROUP_PATH, pid);
+
+ info = g_hash_table_lookup(if_hash, GINT_TO_POINTER(index));
+ if (info == NULL) {
+ connman_error("Inconsitent state. No cgroup for index %d",
+ index);
+ return -EINVAL;
+ }
+
+ err = cgroup_attach(info->path, pid);
+ if (err < 0) {
+ DBG("Could not attach pid %s to %d", info->path, pid);
+ return err;
+ }
+
+ return 0;
+}
static int check_mount_point(const char *path)
{
diff --git a/src/connman.h b/src/connman.h
index 68d13a5..90c85ac 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -847,3 +847,4 @@ int __connman_cgroup_init(void);
void __connman_cgroup_cleanup(void);
int __connman_cgroup_add_interface(int index);
int __connman_cgroup_rem_interface(int index);
+int __connman_cgroup_set_route(int index, int pid);
--
1.7.12.rc1.16.g05a20c8
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman