diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bonding.sh | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/net/bonding.sh b/net/bonding.sh index 69de32aa..99a85170 100644 --- a/net/bonding.sh +++ b/net/bonding.sh @@ -4,7 +4,6 @@ bonding_depend() { before interface macchanger - program /sbin/ifenslave } _config_vars="$_config_vars slaves" @@ -53,7 +52,7 @@ bonding_pre_start() # Must force the slaves to a particular state before adding them for IFACE in ${slaves}; do _delete_addresses - _up + _down done ) @@ -62,7 +61,13 @@ bonding_pre_start() # finally add in slaves eoutdent - /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null + if [ -d /sys/class/net ]; then + for s in ${slaves}; do + echo "+${s}" >/sys/class/net/"${IFACE}"/bonding/slaves + done + else + /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null + fi eend $? return 0 #important @@ -84,7 +89,13 @@ bonding_stop() eindent einfo "${slaves}" eoutdent - /sbin/ifenslave -d "${IFACE}" ${slaves} + if [ -d /sys/class/net ]; then + for s in ${slaves}; do + echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves + done + else + /sbin/ifenslave -d "${IFACE}" ${slaves} + fi # reset all slaves ( |