Add isolated_loopback support in vservers at creation-time.
[util-vserver-pl.git] / scripts / vuseradd
index c49fdd4..f64d62d 100755 (executable)
@@ -39,11 +39,15 @@ usage()
 }
 
 # Get options
-while getopts "t:" opt ; do
+ISOLATE=false
+while getopts "it:" opt ; do
     case $opt in
        t)
            TYPE="$OPTARG"
            ;;
+       i)
+           ISOLATE=true
+           ;;
        *)
            usage
            ;;
@@ -77,10 +81,17 @@ if [ ! -d $__CONFDIR/$NAME ] ; then
        HAS_VSERVERDIR=0
     fi
 
-    $_VSERVER $NAME build -m skeleton --context $USERID \
+    if [ "$ISOLATE" = "true" ] ; then
+        $_VSERVER $NAME build -m skeleton --context $USERID \
+               --interface nodev:`hostname -i` \
+               --flags persistent,~info_init
+    else 
+        $_VSERVER $NAME build -m skeleton --context $USERID \
                --interface nodev:`hostname -i` \
-                --interface nodev:127.0.0.1 \
+               --interface nodev:127.0.0.1 \
                --flags persistent,~info_init
+    fi
+
     RETVAL=$?
     DIR=$__CONFDIR/$NAME
     if [ $RETVAL -ne 0 ] ; then
@@ -91,7 +102,11 @@ if [ ! -d $__CONFDIR/$NAME ] ; then
     echo default > $DIR/apps/init/mark
 
     # Set persistent for the network context
-    echo persistent,lback_allow > $DIR/nflags
+    if [ "$ISOLATE" = "true" ]; then
+        echo persistent,lback_allow,hide_lback,lback_remap > $DIR/nflags
+    else 
+        echo persistent,lback_allow > $DIR/nflags
+    fi
 
     # Set default capabilities
     echo "CAP_NET_RAW" > $DIR/bcapabilities