From: Daniel Hokka Zakrisson Date: Thu, 23 Nov 2006 21:12:26 +0000 (+0000) Subject: Add support for the network flags and capabilities in the configuration. X-Git-Tag: release-0.30.212~29 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5dbe45b60edf550f856188fa9e837a34d43a2e6;p=util-vserver.git Add support for the network flags and capabilities in the configuration. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2394 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/doc/configuration.xml b/doc/configuration.xml index 66cc7a8..07b506f 100644 --- a/doc/configuration.xml +++ b/doc/configuration.xml @@ -364,6 +364,13 @@ url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/ccaps-v13.c">lib/cc for possible values. + + +Contains the network capabilities. See lib/ncaps-net.c +for possible values. + + @@ -524,6 +531,13 @@ Apply the current ulimit to the whole context --> + + +Contains a network flag per line. See lib/nflags-net.c +for possible values. + + Contains the context which shall be used for the vserver. diff --git a/scripts/chbind b/scripts/chbind index 75aa2a4..03836d8 100755 --- a/scripts/chbind +++ b/scripts/chbind @@ -57,8 +57,6 @@ the GNU General Public License. This program has absolutely no warranty." exit $1 } -$_VSERVER_INFO - FEATURE vnet || exec $_CHBIND_COMPAT "$@" - tmp=$(getopt -o + --long ncap:,nid:,ip:,bcast:,disconnect,flag:,secure,silent,help,version -n "$0" -- "$@") || exit 1 eval set -- "$tmp" @@ -81,7 +79,7 @@ while true; do --flag) OPT_FLAGS=( "${OPT_FLAGS[@]}" "$2" ); shift;; --secure) OPT_SECURE=1;; --silent) OPT_SILENT=1;; - --ip) OPT_IPS=( "${OPT_IPS[@]}" "$2" ); shift;; + --ip) OPT_IPS=( "${OPT_IPS[@]}" --ip "$2" ); shift;; --bcast) OPT_BCAST=$2; shift;; --) shift; break;; *) echo $"chbind: internal error; arg=='$1'" >&2; exit 1;; @@ -89,6 +87,13 @@ while true; do shift done +$_VSERVER_INFO - FEATURE vnet || exec $_CHBIND_COMPAT \ + ${OPT_NID:+--nid "$OPT_NID"} \ + ${OPT_SILENT:+--silent} \ + ${OPT_BCAST:+--bcast "$OPT_BCAST"} \ + "${OPT_IPS[@]}" \ + -- "$@" + create_cmd=( $_NCONTEXT --create --silentexist ${OPT_SILENT:+--silent} ${OPT_NID:+--nid "$OPT_NID"} ) @@ -107,12 +112,9 @@ chain_cmd=( "${chain_cmd[@]}" -- $_NADDRESS --add ${OPT_SILENT:+--silent} - ${OPT_BCAST:+--bcast "$OPT_BCAST"} ) + ${OPT_BCAST:+--bcast "$OPT_BCAST"} + "${OPT_IPS[@]}" ) -for ip in "${OPT_IPS[@]}"; do - chain_cmd=( "${chain_cmd[@]}" --ip "$ip" ) -done - migrate_cmd=( $_NCONTEXT ${OPT_SILENT:+--silent} ${OPT_DISCONNECT:+--disconnect} ) diff --git a/scripts/vserver.functions b/scripts/vserver.functions index 592d3f1..47eca33 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -73,6 +73,22 @@ else SILENT_OPT='--silent' fi +function _readFileToArray +{ + local _rfta_f="$1" + local _rfta_a="$2" + local _rfta_p="$3" + local _rfta_v + + test -e "$_rfta_f" || return 0 + while read _rfta_v; do + case x"$_rfta_v" in + (x|x\#*) ;; + (*) eval "$_rfta_a=( \"\${$_rfta_a[@]}\" $_rfta_p \"$_rfta_v\" )";; + esac + done <"$_rfta_f" +} + function _generateChbindOptions { local vdir="$1" @@ -93,6 +109,9 @@ function _generateChbindOptions CHBIND_OPTS=( "${CHBIND_OPTS[@]}" --ip "$i" ) done + _readFileToArray "$vdir"/nflags CHBIND_OPTS --flag + _readFileToArray "$vdir"/ncapabilities CHBIND_OPTS --ncap + _HAVE_CHBIND_OPTIONS=1 } @@ -139,31 +158,15 @@ function _generatePersonalityOptions function _generateCCapabilityOptions { local vdir=$1 - local cap - local f="$vdir"/ccapabilities - - test -e "$f" || return 0 - while read cap; do - case x"$cap" in - (x|x\#*) ;; - (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --ccap "$cap" );; - esac - done <"$f" + + _readFileToArray "$vdir"/ccapabilities OPTS_VATTRIBUTE --ccap } function _generateBCapabilityOptions { local vdir=$1 - local cap - local f="$vdir"/bcapabilities - - test -e "$f" || return 0 - while read cap; do - case x"$cap" in - (x|x\#*) ;; - (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --bcap "$cap" );; - esac - done <"$f" + + _readFileToArray "$vdir"/bcapabilities OPTS_VATTRIBUTE --bcap } function _generateCapabilityOptions