summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-scripts/net.modules.d/bonding')
-rw-r--r--net-scripts/net.modules.d/bonding15
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