Ticket #105: bonding-sysfs.sh

File bonding-sysfs.sh, 0 bytes (added by roy, 2 years ago)

Use sysfs if available

Line 
1diff --git a/net/bonding.sh b/net/bonding.sh
2index 69de32a..f35fbdd 100644
3--- a/net/bonding.sh
4+++ b/net/bonding.sh
5@@ -4,7 +4,6 @@
6 bonding_depend()
7 {
8        before interface macchanger
9-       program /sbin/ifenslave
10 }
11 
12 _config_vars="$_config_vars slaves"
13@@ -62,7 +61,13 @@ bonding_pre_start()
14 
15        # finally add in slaves
16        eoutdent
17-       /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null
18+       if [ -d /sys/class/net ]; then
19+               for s in ${slaves}; do
20+                       echo "+${s}" >/sys/class/net/"${IFACE}"/bonding/slaves
21+               done
22+       else
23+               /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null
24+       fi
25        eend $?
26 
27        return 0 #important
28@@ -84,7 +89,13 @@ bonding_stop()
29        eindent
30        einfo "${slaves}"
31        eoutdent
32-       /sbin/ifenslave -d "${IFACE}" ${slaves}
33+       if [ -d /sys/class/net ]; then
34+               for s in ${slaves}; do
35+                       echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves
36+               done
37+       else
38+               /sbin/ifenslave -d "${IFACE}" ${slaves}
39+       fi
40 
41        # reset all slaves
42        (