enableInterfaces(), disableInterfaces(): added locking
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Wed, 31 Mar 2004 00:04:34 +0000 (00:04 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Wed, 31 Mar 2004 00:04:34 +0000 (00:04 +0000)
enableInterfaces(), disableInterfaces(): added IP_ADDR_FLUSH type

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1403 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/scripts/vserver.functions

index 26fd201..601af85 100644 (file)
@@ -516,6 +516,8 @@ function enableInterfaces
     local i=0
     declare -a var
 
+    lock "$LOCKDIR"/vserver.interfaces
+
     while test $i -lt $INTERFACE_CMDS_IDX; do
        eval var='( "${INTERFACE_CMDS_'$i'[@]}" )'
        local type=${var[0]}
@@ -530,16 +532,19 @@ function enableInterfaces
                shift 2
                $_MODPROBE ${name:+-o "$name"} "$mod" "$@"
                ;;
-           NAMEIF)     $_NAMEIF   "$@";;
-           VCONFIG)    $_VCONFIG  add "$@";;
-           IP_ADDR)    $_IP addr  add "$@";;
-           IP_LINK)    $_IP link  set "$@";;
-           IP_ROUTE)   $_IP route add "$@";;
-           *)          echo "Unknown interface-command type '$type'" >&2; false;;
+           NAMEIF)             $_NAMEIF "$@";;
+           VCONFIG)            $_VCONFIG  add   "$@";;
+           IP_ADDR)            $_IP addr  add   "$@";;
+           IP_ADDR_FLUSH)      $_IP addr  flush "$@";;
+           IP_LINK)            $_IP link  set   "$@";;
+           IP_ROUTE)           $_IP route add   "$@";;
+           *)                  echo "Unknown interface-command type '$type'" >&2; false;;
        esac
 
        let ++i
     done
+
+    unlock 1
 }
 
 function disableInterfaces
@@ -549,6 +554,8 @@ function disableInterfaces
     local i=$INTERFACE_CMDS_IDX
     declare -a var
 
+    lock "$LOCKDIR"/vserver.interfaces
+    
     while test $i -gt 0; do
        let --i || :
 
@@ -558,16 +565,19 @@ function disableInterfaces
        
        set -- "${var[@]}"
        case "$type" in
-           IPTABLES)   ;; ## TODO
-           MODPROBE)   $_RMMOD "${2:-$1}";;
-           NAMEIF)     ;;
-           VCONFIG)    $_VCONFIG  rem "$@";;
-           IP_ADDR)    $_IP addr  del "$@";;
-           IP_LINK)    ;; ## Ignore the link-down command for now
-           IP_ROUTE)   $_IP route del "$@";;
-           *)          echo "Unknown interface-command type '$type'" >&2; false;;
+           IPTABLES)           ;; ## TODO
+           MODPROBE)           $_RMMOD "${2:-$1}";;
+           NAMEIF)             ;;
+           VCONFIG)            $_VCONFIG  rem "$@";;
+           IP_ADDR)            $_IP addr  del "$@";;
+           IP_ADDR_FLUSH)      ;;
+           IP_LINK)            ;; ## Ignore the link-down command for now
+           IP_ROUTE)           $_IP route del "$@";;
+           *)                  echo "Unknown interface-command type '$type'" >&2; false;;
        esac
     done
+
+    unlock 1
 }
 
 ## Usage: prepareInit <vserver-directory>