X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=b90596820ddea161401438cdc5677e30b4295bd5;hb=9e9bcf76d468cce2a545026c8e5aca3a2ac9507f;hp=d9794019f18d6b7eee42496c866375bd101bc25e;hpb=58df27cf3be8958d7a053fcbdddf93cd23a14ca9;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index d979401..b905968 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -112,6 +112,12 @@ function _generateChbindOptions test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$vdir" + if test -e "$vdir"/noncontext -o + \( -e "$vdir"/spaces/net -a ! -e "$vdir"/ncontext \); then + _HAVE_CHBIND_OPTIONS=1 + return 0 + fi + local f="$vdir"/interfaces/bcast getFileValue bcast "$f" f="$vdir"/interfaces/lback @@ -790,29 +796,21 @@ function _generateSpaceOptions local vdir="$1" local d="$vdir"/spaces local shared - - if test -e "$d"/pid; then - getFileValue shared "$d"/pid - if test -z "$shared"; then - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) - else - OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --pid ) - VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --pid -- ) - fi - fi - - if test -e "$d"/net; then - getFileValue shared "$d"/net - # network context and namespace don't make much sense - _HAVE_CHBIND_OPTIONS=1 - CHBIND_CMD=() - if test -z "$shared"; then - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) - else - OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --net ) - VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --net -- ) + local space + + for space in pid net; do + if test -e "$d"/$space; then + getFileValue shared "$d"/$space || shared="" + if test -z "$shared"; then + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --$space ) + elif test "$shared" = "0"; then + # Do nothing + else + OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --$space ) + VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --$space -- ) + fi fi - fi + done local mask getFileValue mask "$d"/mask || \