diff options
Diffstat (limited to 'package/base-files/src/etc/network')
7 files changed, 79 insertions, 79 deletions
diff --git a/package/base-files/src/etc/network/if-post-down.d/03-wireless b/package/base-files/src/etc/network/if-post-down.d/03-wireless index 86e0c73e1..a32e58781 100755 --- a/package/base-files/src/etc/network/if-post-down.d/03-wireless +++ b/package/base-files/src/etc/network/if-post-down.d/03-wireless @@ -1,5 +1,4 @@ -#!/bin/sh -set -e +#!/bin/sh [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 @@ -11,7 +10,7 @@ case "$IF_WIRELESS_MODE" in sta) [ "$IF_WIRELESS_SECURITY" != "none" ] && { logger -t wireless "Killing wpa_supplicant" - pkill wpa_supplicant + kill -9 $(cat /var/run/wpa_supplicant.pid) } ;; *) diff --git a/package/base-files/src/etc/network/if-post-down.d/04-bonding b/package/base-files/src/etc/network/if-post-down.d/04-bonding new file mode 100755 index 000000000..0b9c9f362 --- /dev/null +++ b/package/base-files/src/etc/network/if-post-down.d/04-bonding @@ -0,0 +1,20 @@ +#!/bin/sh + +case "$IF_BOND_PORTS" in +"") + exit 0 + ;; +none) + INTERFACES="" + ;; +*) + INTERFACES="$IF_BOND_PORTS" + ;; +esac + +for IF in $INTERFACES; do + ip link set $IF nomaster + ip link set $IF down +done +ip link del $IFACE +exit 0 diff --git a/package/base-files/src/etc/network/if-pre-up.d/02-vlan b/package/base-files/src/etc/network/if-pre-up.d/02-vlan index 26b33ca80..f153df564 100755 --- a/package/base-files/src/etc/network/if-pre-up.d/02-vlan +++ b/package/base-files/src/etc/network/if-pre-up.d/02-vlan @@ -1,13 +1,7 @@ #!/bin/sh -which vconfig || { - echo "vconfig executable not found, aborting" - exit 0 -} -[ -d /proc/net/vlan ] || { - echo "no kernel support for 802.1q found, aborting" - exit 0 -} +which vconfig >/dev/null || exit 0 +[ -d /proc/net/vlan ] || exit 0 case "$IFACE" in vlan*) diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless index ebcec5a12..ef070c5bc 100755 --- a/package/base-files/src/etc/network/if-pre-up.d/04-wireless +++ b/package/base-files/src/etc/network/if-pre-up.d/04-wireless @@ -1,18 +1,17 @@ #!/bin/sh -set -e [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 [ "$IF_WIRELESS_SSID" ] || exit 1 -[ "$IF_WIRELESS_CHANNEL" ] || exit 1 [ "$IF_WIRELESS_HWMODE" ] || IF_WIRELESS_HWMODE=g [ "$IF_WIRELESS_EXTENSION" ] || IF_WIRELESS_EXTENSION=0 -rfkill unblock wlan 2>/dev/null +[ -x /usr/sbin/rfkill ] && rfkill unblock wlan 2>/dev/null wpa=0 wpa1=0 wpa2=0 +pairwise="" case "$IF_WIRELESS_SECURITY" in none) @@ -24,10 +23,12 @@ case "$IF_WIRELESS_SECURITY" in wpa) sec=1 wpa1=1 + pairwise=TKIP ;; wpa2) sec=1 wpa2=1 + pairwise=CCMP ;; wpa+wpa2) sec=1 @@ -38,6 +39,8 @@ case "$IF_WIRELESS_SECURITY" in ;; esac +[ "$IF_WIRELESS_PAIRWISE" ] || IF_WIRELESS_PAIRWISE=$pairwise + case "$IF_WIRELESS_MODE" in ap) logger -t hostap "Creating hostapd configuration" @@ -56,14 +59,14 @@ case "$IF_WIRELESS_MODE" in logger -t hostap "using WPA for security" echo "wpa=1" >> /tmp/hostapd.conf echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf - echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf + echo "wpa_pairwise=$IF_WIRELESS_PAIRWISE" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } [ $wpa2 -eq 1 ] && { logger -t hostap "using WPA2 for security" echo "wpa=2" >> /tmp/hostapd.conf echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf - echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf + echo "rsn_pairwise=$IF_WIRELESS_PAIRWISE" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } [ $wpa -eq 1 ] && { @@ -74,8 +77,12 @@ case "$IF_WIRELESS_MODE" in echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } + [ -f /etc/hostapd.conf.post ] && \ + cat /etc/hostapd.conf.post >> /tmp/hostapd.conf ;; sta) + # need to wait for wlan drivers to settle down + sleep 1 ip link set up dev ${IFACE} [ $IF_WIRELESS_EXTENSION -eq 1 ] && { [ -x /usr/sbin/iwconfig ] || { @@ -90,8 +97,11 @@ case "$IF_WIRELESS_MODE" in exit 1 } driver=nl80211 - iw dev ${IFACE} set channel $IF_WIRELESS_CHANNEL - iw dev ${IFACE} connect $IF_WIRELESS_SSID + [ $sec -eq 2 ] && { + iw dev ${IFACE} connect "$IF_WIRELESS_SSID" key d:0:$IF_WIRELESS_PASSPHRASE + } || { + iw dev ${IFACE} connect "$IF_WIRELESS_SSID" 2>/dev/null + } } [ $wpa2 -eq 1 ] && { [ -x /usr/sbin/wpa_supplicant ] || { @@ -105,7 +115,7 @@ case "$IF_WIRELESS_MODE" in echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf echo " priority=5" >> /tmp/wpa_supplicant.conf echo "}" >> /tmp/wpa_supplicant.conf - wpa_supplicant -B -D${driver} -i${IFACE} -c/tmp/wpa_supplicant.conf + wpa_supplicant -B -D${driver} -i${IFACE} -P/var/run/wpa_supplicant.pid -c/tmp/wpa_supplicant.conf } ;; *) diff --git a/package/base-files/src/etc/network/if-pre-up.d/05-bonding b/package/base-files/src/etc/network/if-pre-up.d/05-bonding new file mode 100755 index 000000000..489a2fcad --- /dev/null +++ b/package/base-files/src/etc/network/if-pre-up.d/05-bonding @@ -0,0 +1,37 @@ +#!/bin/sh + +INTERFACES="" +BONDOPTS="" +for var in $(env | grep '^IF_BOND_'); do + val="${var#*=}" + opt="${var%%=*}" + if [ "$opt" == "IF_BOND_PORTS" ]; then + case "$val" in + none) + INTERFACES="" + ;; + *) + INTERFACES="$val" + ;; + esac + continue + fi + opt="$(tr '[A-Z]' '[a-z]' <<< ${opt#IF_BOND_})" + BONDOPTS+=" $opt" + [ -n "$val" ] && BONDOPTS+=" $val" +done + +[ -n "$INTERFACES" ] || exit 0 + +ip link add $IFACE type bond ${BONDOPTS} || exit 1 +for IF in $INTERFACES; do + if ! grep -q $IF /proc/net/dev; then + echo "Error: interface '$IF' does not exist!" + ip link del $IFACE + exit 1 + fi + ip link set $IF master $IFACE + ip link set $IF up +done + +exit 0 diff --git a/package/base-files/src/etc/network/if-up.d/02-wireless b/package/base-files/src/etc/network/if-up.d/02-wireless index cd9d2af3f..1ec73fed2 100755 --- a/package/base-files/src/etc/network/if-up.d/02-wireless +++ b/package/base-files/src/etc/network/if-up.d/02-wireless @@ -1,5 +1,4 @@ #!/bin/sh -set -e [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 diff --git a/package/base-files/src/etc/network/interfaces b/package/base-files/src/etc/network/interfaces deleted file mode 100644 index dbde94b80..000000000 --- a/package/base-files/src/etc/network/interfaces +++ /dev/null @@ -1,59 +0,0 @@ -auto lo -iface lo inet loopback - -auto eth0 -iface eth0 inet dhcp - -## static network configuration -#auto eth0 -#iface eth0 inet static -# address 192.168.1.1 -# netmask 255.255.255.0 -# broadcast + -# gateway 192.168.1.254 -## - -## bridge configuration -#auto br0 -#iface br0 inet static -# address 192.168.99.1 -# netmask 255.255.255.0 -# broadcast + -# bridge-ports eth0 eth1 -## - -## pppoe configuration -#auto ppp0 -#iface ppp0 inet ppp -# use-template pppoe -# provider isp -# ppp-mtu 1412 -# ppp-username foo -# ppp-password bar -# ppp-device eth1 -## - -## wireless client configuration -#auto wlan0 -#iface wlan0 inet dhcp -# wireless-ssid myap -# wireless-channel 11 -# wireless-mode sta -# wireless-security wpa2 -# wireless-passphrase xxxxxx -## - -## wireless accesspoint configuration -#auto wlan0 -#iface wlan0 inet static -# address 192.168.40.10 -# netmask 255.255.255.0 -# broadcast + -# wireless-ssid myap -# wireless-channel 8 -# wireless-mode ap -# wireless-security wpa2 -# wireless-passphrase xxxxxx -## - -# for more special cases see: http://www.openadk.org/doku.php?id=network |
