Use context for vsysvwrapper.
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 12 Aug 2010 03:05:59 +0000 (03:05 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 12 Aug 2010 03:05:59 +0000 (03:05 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2911 94cd875c-1c1d-0410-91d2-eb244daf1a30

lib/issupported.c
lib/issupportedstring.c
lib/vserver.h
scripts/vsysvwrapper

index 35cd9f2..cb7bcba 100644 (file)
@@ -52,6 +52,7 @@ vc_isSupported(vcFeatureSet feature)
     case vcFEATURE_PIVOT_ROOT  :  return ver >= 0x00020304;
     case vcFEATURE_PIDSPACE    :  return false;
     case vcFEATURE_MEMCG       :  return ver >= 0x00020306 && conf & VC_VCI_MEMCG;
+    case vcFEATURE_DYNAMIC     :  return ver <  0x00020300 || !(conf & VC_VCI_NO_DYNAMIC);
     default                    :  assert(false); 
   }
 
index fa9cafe..ccd4e23 100644 (file)
@@ -36,6 +36,7 @@ static struct {
   DECL(VHI),     DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT),
   DECL(VNET),    DECL(VSTAT),     DECL(PPTAG),    DECL(PIDSPACE),
   DECL(SPACES),  DECL(PERSISTENT),DECL(PIVOT_ROOT),DECL(MEMCG),
+  DELC(DYNAMIC), 
 };
 
 bool
index 9c1e820..f8da611 100644 (file)
@@ -990,7 +990,7 @@ extern "C" {
                  vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT,
                 vcFEATURE_VNET,   vcFEATURE_VSTAT,   vcFEATURE_PPTAG,
                 vcFEATURE_PIDSPACE, vcFEATURE_SPACES, vcFEATURE_PERSISTENT,
-                vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG,
+                vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG, vcFEATURE_DYNAMIC,
                 }
     vcFeatureSet;
 
index da9754e..ebb5999 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
 # based on vsyswrapper by Jacques Gelinas
@@ -35,11 +35,16 @@ else
        if [ -f /etc/vservices/$SERVICE.conf ] ; then
                . /etc/vservices/$SERVICE.conf
        fi
+       if [ -z "$NID" ]; then
+               if ! $_VSERVER_INFO - FEATURE dynamic; then
+                       NID=49151
+               fi
+       fi
        IPOPT=
        for oneip in $IP
        do
                IPOPT="$IPOPT --ip $oneip"
        done
-       echo exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@"
-       exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@"
+       echo exec $_CHBIND ${NID:+--nid $NID} $IPOPT /etc/init.d/$SERVICE "$@"
+       exec $_CHBIND ${NID:+--nid $NID} $IPOPT /etc/init.d/$SERVICE "$@"
 fi