perform vsys sysctl inside of container
[lxc-userspace.git] / setns.c
diff --git a/setns.c b/setns.c
index fded30b..971665a 100644 (file)
--- a/setns.c
+++ b/setns.c
@@ -15,12 +15,11 @@ chfscontext(PyObject *self, PyObject *args)
 
     int fd = open(filepath, O_RDONLY);
     if (fd < 0) {
-           //printf("Could not open ns file\n");
         sts = -1;
         goto out;
     }
     
-    if (setns(fd, 666)) {
+    if (setns(fd, 0)) {
         sts = -1;
     }
     close(fd);
@@ -33,11 +32,21 @@ static PyObject *
 proc_mount(PyObject *self, PyObject *args)
 {
     int sts; 
-    sts = mount("none","/proc","procfs",0,NULL);
+    sts = mount("none","/proc","proc",0,NULL);
 
     return Py_BuildValue("i", sts);
 }
 
+static PyObject *
+proc_umount(PyObject *self, PyObject *args)
+{
+    int sts; 
+    sts = umount("/proc");
+
+    return Py_BuildValue("i", sts);
+
+}
+
 static PyObject *
 chcontext(PyObject *self, PyObject *args)
 {
@@ -49,7 +58,6 @@ chcontext(PyObject *self, PyObject *args)
 
     int fd = open(filepath, O_RDONLY);
     if (fd < 0) {
-//     printf("Could not open ns file\n");
         sts = -1;
         goto out;
     }
@@ -66,6 +74,7 @@ out:
 static PyMethodDef SetnsMethods[] =
 {
          {"proc_mount", proc_mount, METH_VARARGS, "Mount a volume via the mount system call."},
+         {"proc_umount", proc_umount, METH_VARARGS, "Umount a volume via the umount system call."},
          {"chcontext", chcontext, METH_VARARGS, "Switch into an lxc container."},
          {"chfscontext", chfscontext, METH_VARARGS, "Switch into an lxc container."},
               {NULL, NULL, 0, NULL}