X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=setns.c;h=36aa360bbb803efb6010559cfe710043684f5d06;hb=2adecab2c9595529b4748c50f78f02a09c8264e8;hp=e82bd261df077c8137a1056d8ebc63dceb5ad02f;hpb=4dd3660b7612a0d6a87320645c2c93490b84b837;p=lxc-userspace.git diff --git a/setns.c b/setns.c index e82bd26..36aa360 100644 --- a/setns.c +++ b/setns.c @@ -3,6 +3,25 @@ #include #include #include +#include + +static PyObject * +proc_mount(PyObject *self, PyObject *args) +{ + int sts; + 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 * chfscontext(PyObject *self, PyObject *args) @@ -15,38 +34,20 @@ chfscontext(PyObject *self, PyObject *args) int fd = open(filepath, O_RDONLY); if (fd < 0) { - sts = -1; + sts = -errno; goto out; } if (setns(fd, 0)) { - sts = -1; + sts = -errno; } close(fd); + sts = 0; out: return Py_BuildValue("i", sts); } -static PyObject * -proc_mount(PyObject *self, PyObject *args) -{ - int sts; - 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) { @@ -58,14 +59,15 @@ chcontext(PyObject *self, PyObject *args) int fd = open(filepath, O_RDONLY); if (fd < 0) { - sts = -1; + sts = -errno; goto out; } if (setns(fd, 0)) { - sts = -1; + sts = -errno; } close(fd); + sts = 0; out: return Py_BuildValue("i", sts);