X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=setns.c;h=e82bd261df077c8137a1056d8ebc63dceb5ad02f;hb=292875d02c96f628a6ca15c0ab82470fb0d7258b;hp=fded30bdb195f09515ed2a0801b637495c7949ba;hpb=68a4f67e919c4580ead80729b183506997627fbd;p=lxc-userspace.git diff --git a/setns.c b/setns.c index fded30b..e82bd26 100644 --- a/setns.c +++ b/setns.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include static PyObject * @@ -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}