remove persistent to actually get rid of the contexts
authorDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Wed, 18 Jul 2007 14:51:37 +0000 (14:51 +0000)
committerDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Wed, 18 Jul 2007 14:51:37 +0000 (14:51 +0000)
python/vserverimpl.c

index c2479db..071a603 100644 (file)
@@ -267,8 +267,16 @@ vserver_unset_dlimit(PyObject *self, PyObject *args)
 static PyObject *
 vserver_killall(PyObject *self, PyObject *args)
 {
-  xid_t  ctx;
-  int  sig;
+  xid_t        ctx;
+  int  sig;
+  struct vc_ctx_flags cflags = {
+    .flagword = 0,
+    .mask = VC_VXF_PERSISTENT
+  };
+  struct vc_net_flags nflags = {
+    .flagword = 0,
+    .mask = VC_NXF_PERSISTENT
+  };
 
   if (!PyArg_ParseTuple(args, "Ii", &ctx, &sig))
     return NULL;
@@ -276,6 +284,12 @@ vserver_killall(PyObject *self, PyObject *args)
   if (vc_ctx_kill(ctx, 0, sig) && errno != ESRCH)
     return PyErr_SetFromErrno(PyExc_OSError);
 
+  if (vc_set_cflags(ctx, &cflags) && errno != ESRCH)
+    return PyErr_SetFromErrno(PyExc_OSError);
+
+  if (vc_set_nflags(ctx, &nflags) && errno != ESRCH)
+    return PyErr_SetFromErrno(PyExc_OSError);
+
   return NONE;
 }