--- lib/rcscritps/net.modules.d/bonding 2006-01-04 07:14:57.000000000 +0000 +++ bonding 2006-01-11 12:44:55.576958317 +0000 @@ -40,6 +40,10 @@ slaves="slaves_${ifvar}[@]" [[ -z ${!slaves} ]] && return 0 + slaves=( "${!slaves}" ) + + # Support space seperated slaves + [[ ${#slaves[@]} == 1 ]] && slaves=( ${slaves} ) interface_exists "${iface}" true || return 1 @@ -50,17 +54,17 @@ ebegin "Adding slaves to ${iface}" eindent - einfo "${!slaves}" + einfo "${slaves[@]}" # Check that our slaves exist - for s in "${!slaves}" ; do + for s in "${slaves[@]}" ; do interface_exists "${s}" && continue ewarn "interface ${s} does not exist" return 1 done # Must force the slaves to a particular state before adding them - for s in "${!slaves}" ; do + for s in "${slaves[@]}" ; do interface_del_addresses "${s}" interface_up "${s}" done @@ -70,7 +74,7 @@ # finally add in slaves eoutdent - /sbin/ifenslave "${iface}" "${!slaves}" >/dev/null + eval /sbin/ifenslave "${iface}" "${slaves[@]}" >/dev/null eend $? return 0 #important @@ -87,7 +91,9 @@ ! bonding_exists "${iface}" && return 0 # don't trust the config, get the active list instead - slaves=$( sed -n -e 's/^Slave Interface: //p' "/proc/net/bonding/${iface}" ) + slaves="$( \ + sed -n -e 's/^Slave Interface: //p' /proc/net/bonding/${iface} | xargs \ + )" [[ -z ${slaves} ]] && return 0 # remove all slaves @@ -95,7 +101,7 @@ eindent einfo "${slaves}" eoutdent - /sbin/ifenslave -d "${iface}" ${slaves} &>${devnull} + /sbin/ifenslave -d "${iface}" ${slaves} # reset all slaves for s in ${slaves}; do