From 40b31875ebb4841e5c9f3fa4f3297b41352eeeca Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 10 Mar 2004 02:35:52 +0000 Subject: [PATCH] isAvoidNamespace(): determine full cfgdir path of vserver before checking for 'namespace' file callInNamespace(): added git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1197 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/scripts/functions | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/util-vserver/scripts/functions b/util-vserver/scripts/functions index 0581dd7..6c33047 100644 --- a/util-vserver/scripts/functions +++ b/util-vserver/scripts/functions @@ -242,10 +242,13 @@ function pkgInit function isAvoidNamespace { - $_VSERVER_INFO - FEATURE namespace || return 0 - test ! -e "$1"/namespace || return 1 + local cfgdir + + $_VSERVER_INFO - FEATURE namespace || return 0 + cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 0 + test ! -e "$cfgdir"/namespace || return 1 test -e "$CONFDIR"/.defaults/nonamespace -o \ - -e "$1"/nonamespace + -e "$cfgdir"/nonamespace } function getAllVservers @@ -356,3 +359,18 @@ function isKernelAPI local api=$($_VSERVER_INFO - APIVER) || api=0 test $[ $api ] -${2:-ge} $[ $1 ] } + +## Usage: callInNamespace * +function callInNamespace +{ + local ctx= + + isAvoidNamespace "$1" || \ + ctx=$( $_VSERVER_INFO "$1" CONTEXT t ) || ctx= + + if test "$ctx"; then + $_VNAMESPACE --enter "$ctx" -- "$@" + else + "$@" + fi +} -- 1.8.1.5