aboutsummaryrefslogtreecommitdiff
path: root/straper/db/public/network/etc-network/if-pre-up.d
diff options
context:
space:
mode:
Diffstat (limited to 'straper/db/public/network/etc-network/if-pre-up.d')
-rwxr-xr-xstraper/db/public/network/etc-network/if-pre-up.d/ethtool14
-rwxr-xr-xstraper/db/public/network/etc-network/if-pre-up.d/wireless-tools143
2 files changed, 157 insertions, 0 deletions
diff --git a/straper/db/public/network/etc-network/if-pre-up.d/ethtool b/straper/db/public/network/etc-network/if-pre-up.d/ethtool
new file mode 100755
index 0000000..6c1d5de
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-pre-up.d/ethtool
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+ETHTOOL=/usr/sbin/ethtool
+
+test -x $ETHTOOL || exit 0
+
+[ "$IFACE" != "lo" ] || exit 0
+
+# Gather together the mixed bag of settings applied with -s/--change
+SETTINGS="\
+${IF_ETHERNET_PORT:+ port $IF_ETHERNET_PORT}\
+${IF_DRIVER_MESSAGE_LEVEL:+ msglvl $IF_DRIVER_MESSAGE_LEVEL}\
+"
+[ -z "$SETTINGS" ] || $ETHTOOL --change "$IFACE" $SETTINGS
diff --git a/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools b/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools
new file mode 100755
index 0000000..fcabb34
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools
@@ -0,0 +1,143 @@
+#!/bin/sh
+
+IWCONFIG=/sbin/iwconfig
+
+if [ ! -x $IWCONFIG ]; then
+ exit 0
+fi
+
+# check if this is a 802.11 device we're supposed to be effecting
+case "${IF_WIRELESS:-enable}" in
+ wireless-tools|iwconfig)
+ # *we* and not some other 802.11 tool should be used
+ ;;
+ true|yes|enable|1)
+ # 802.11 should be used on this device, check for extensions
+ $IWCONFIG $IFACE >/dev/null 2>&1 || exit 0
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+
+# The wireless driver madness:
+#
+# - Some drivers want everything to be configured before bringing the interface up
+# - Some drivers want everything to be configured after bringing the interface up
+# - Some drivers want some parameters before, other parameters after bringing the interface up
+#
+# So, we try to set every parameter when the interface is still down,
+# and remember which ones failed to be configured properly.
+# If some failed, we bring the interface up, and try the failed ones again.
+
+apply_settings()
+{
+ if [ -n "$IF_WIRELESS_SENS" ]; then
+ $IWCONFIG "$IFACE" sens $IF_WIRELESS_SENS && IF_WIRELESS_SENS= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_MODE" ]; then
+ $IWCONFIG "$IFACE" mode $IF_WIRELESS_MODE && IF_WIRELESS_MODE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_AP" ]; then
+ $IWCONFIG "$IFACE" ap $IF_WIRELESS_AP && IF_WIRELESS_AP= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RATE" ]; then
+ $IWCONFIG "$IFACE" rate $IF_WIRELESS_RATE && IF_WIRELESS_RATE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RTS" ]; then
+ $IWCONFIG "$IFACE" rts $IF_WIRELESS_RTS && IF_WIRELESS_RTS= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_FRAG" ]; then
+ $IWCONFIG "$IFACE" frag $IF_WIRELESS_FRAG && IF_WIRELESS_FRAG= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWER" ]; then
+ $IWCONFIG "$IFACE" power $IF_WIRELESS_POWER && IF_WIRELESS_POWER= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWERPERIOD" ]; then
+ $IWCONFIG "$IFACE" power period $IF_WIRELESS_POWERPERIOD && IF_WIRELESS_POWERPERIOD= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWERTIMEOUT" ]; then
+ $IWCONFIG "$IFACE" power timeout $IF_WIRELESS_POWERTIMEOUT && IF_WIRELESS_POWERTIMEOUT= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_TXPOWER" ]; then
+ $IWCONFIG "$IFACE" txpower $IF_WIRELESS_TXPOWER && IF_WIRELESS_TXPOWER= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RETRY" ]; then
+ $IWCONFIG "$IFACE" retry $IF_WIRELESS_RETRY && IF_WIRELESS_RETRY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_ENC" ]; then
+ eval $IWCONFIG "$IFACE" enc $IF_WIRELESS_ENC && IF_WIRELESS_ENC= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_DEFAULTKEY" ]; then
+ $IWCONFIG "$IFACE" key ["$IF_WIRELESS_DEFAULTKEY"] && IF_WIRELESS_DEFAULTKEY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEYMODE" ]; then
+ $IWCONFIG "$IFACE" key "$IF_WIRELESS_KEYMODE" && IF_WIRELESS_KEYMODE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY" ]; then
+ eval $IWCONFIG "$IFACE" key $IF_WIRELESS_KEY && IF_WIRELESS_KEY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY1" ]; then
+ $IWCONFIG "$IFACE" key [1] "$IF_WIRELESS_KEY1" && IF_WIRELESS_KEY1= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY2" ]; then
+ $IWCONFIG "$IFACE" key [2] "$IF_WIRELESS_KEY2" && IF_WIRELESS_KEY2= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY3" ]; then
+ $IWCONFIG "$IFACE" key [3] "$IF_WIRELESS_KEY3" && IF_WIRELESS_KEY3= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY4" ]; then
+ $IWCONFIG "$IFACE" key [4] "$IF_WIRELESS_KEY4" && IF_WIRELESS_KEY4= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_FREQ" ]; then
+ $IWCONFIG "$IFACE" freq $IF_WIRELESS_FREQ && IF_WIRELESS_FREQ= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_CHANNEL" ]; then
+ $IWCONFIG "$IFACE" channel $IF_WIRELESS_CHANNEL && IF_WIRELESS_CHANNEL= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_NICK" ]; then
+ $IWCONFIG "$IFACE" nick "$IF_WIRELESS_NICK" && IF_WIRELESS_NICK= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_NWID" ]; then
+ $IWCONFIG "$IFACE" nwid "$IF_WIRELESS_NWID" && IF_WIRELESS_NWID= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_ESSID" ]; then
+ $IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID" && IF_WIRELESS_ESSID= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_COMMIT" ]; then
+ $IWCONFIG "$IFACE" commit && IF_WIRELESS_COMMIT= || FAIL=true
+ fi
+}
+
+FAIL=
+apply_settings 2>/dev/null
+
+if [ -n "$FAIL" ]; then
+ FAIL=
+ ip link set dev "$IFACE" up
+ apply_settings
+fi