From 65095f8401e80f1ed9898c5475f56def965c7e15 Mon Sep 17 00:00:00 2001 From: Marc Fiuczynski Date: Thu, 10 May 2007 22:35:32 +0000 Subject: [PATCH] Fix vserver_isrunning() by doing a simple stat of /proc/virtual/ --- python/vserverimpl.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/python/vserverimpl.c b/python/vserverimpl.c index 1d5a62e..85563cc 100644 --- a/python/vserverimpl.c +++ b/python/vserverimpl.c @@ -35,8 +35,10 @@ POSSIBILITY OF SUCH DAMAGE. #include #include -#include #include +#include +#include +#include #include "config.h" #include "pathconfig.h" @@ -89,27 +91,21 @@ vserver_setup_done(PyObject *self, PyObject *args) static PyObject * vserver_isrunning(PyObject *self, PyObject *args) { - struct vc_vx_info vx_info; xid_t ctx; PyObject *ret; + struct stat statbuf; + char fname[64]; if (!PyArg_ParseTuple(args, "I", &ctx)) return NULL; - switch (vc_get_vx_info(ctx, &vx_info)) { - case EPERM: - case ENOSYS: - case EFAULT: - return PyErr_SetFromErrno(PyExc_OSError); - case ESRCH: - /* XXX should be boolean */ - ret = Py_BuildValue("L",0); - break; - default: - /* XXX should be boolean */ - ret = Py_BuildValue("L",1); - break; - } + sprintf(fname,"/proc/virtual/%d", ctx); + + if(stat(&fname[0],&statbuf)==0) + ret = Py_BuildValue("i",1); + else + ret = Py_BuildValue("i",0); + return ret; } -- 2.43.0