diff options
Diffstat (limited to 'net-scripts/net.modules.d/bonding')
-rw-r--r-- | net-scripts/net.modules.d/bonding | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/net-scripts/net.modules.d/bonding b/net-scripts/net.modules.d/bonding index 8a9b13f..9b93ef9 100644 --- a/net-scripts/net.modules.d/bonding +++ b/net-scripts/net.modules.d/bonding @@ -28,10 +28,11 @@ bonding_check_installed() { # # Bonds the interface bonding_pre_start() { - local iface="$1" slaves s ifvar=$( bash_variable "$1" ) + local iface="$1" s ifvar=$( bash_variable "$1" ) + local -a slaves - eval slaves=\"\$\{slaves_${ifvar}\[@\]\}\" - [[ -z ${slaves} ]] && return 0 + slaves="slaves_${ifvar}[@]" + [[ -z ${!slaves} ]] && return 0 interface_exists "${iface}" true || return 1 @@ -42,17 +43,17 @@ bonding_pre_start() { 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 @@ -62,7 +63,7 @@ bonding_pre_start() { # finally add in slaves eoutdent - /sbin/ifenslave "${iface}" ${slaves} >/dev/null + /sbin/ifenslave "${iface}" "${!slaves}" >/dev/null eend $? return 0 #important |