X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/f1526debb190c82b0c8a05b58a73af1963ab3646..592adfdf7413d1977bbf5199d7eb8b9f580502b0:/package/madwifi/files/lib/wifi/madwifi.sh diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh index 27164cc28..5adeee44b 100755 --- a/package/madwifi/files/lib/wifi/madwifi.sh +++ b/package/madwifi/files/lib/wifi/madwifi.sh @@ -74,7 +74,9 @@ enable_atheros() { local device="$1" config_get channel "$device" channel config_get vifs "$device" vifs - + + [ auto = "$channel" ] && channel=0 + local first=1 for vif in $vifs; do nosbeacon= @@ -104,11 +106,10 @@ enable_atheros() { *) agmode=auto;; esac iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null - ifconfig "$ifname" up - sleep 1 iwpriv "$ifname" mode "$agmode" iwpriv "$ifname" pureg "$pureg" iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null + ifconfig "$ifname" up } config_get_bool hidden "$vif" hidden 0 @@ -180,6 +181,9 @@ enable_atheros() { config_get rate "$vif" rate [ -n "$rate" ] && iwconfig "$ifname" rate "${rate%%.*}" + config_get mcast_rate "$vif" mcast_rate + [ -n "$mcast_rate" ] && iwpriv "$ifname" mcast_rate "${mcast_rate%%.*}" + config_get frag "$vif" frag [ -n "$frag" ] && iwconfig "$ifname" frag "${frag%%.*}" @@ -192,12 +196,30 @@ enable_atheros() { config_get_bool comp "$vif" compression [ -n "$comp" ] && iwpriv "$ifname" compression "$comp" + config_get_bool minrate "$vif" minrate + [ -n "$minrate" ] && iwpriv "$ifname" minrate "$minrate" + + config_get_bool maxrate "$vif" maxrate + [ -n "$maxrate" ] && iwpriv "$ifname" maxrate "$maxrate" + config_get_bool burst "$vif" bursting [ -n "$burst" ] && iwpriv "$ifname" burst "$burst" config_get_bool wmm "$vif" wmm [ -n "$wmm" ] && iwpriv "$ifname" wmm "$wmm" + config_get_bool xr "$vif" xr + [ -n "$xr" ] && iwpriv "$ifname" xr "$xr" + + config_get_bool ar "$vif" ar + [ -n "$ar" ] && iwpriv "$ifname" ar "$ar" + + config_get_bool turbo "$vif" turbo + [ -n "$turbo" ] && iwpriv "$ifname" turbo "$turbo" + + config_get_bool doth "$vif" doth 0 + [ -n "$doth" ] && iwpriv "$ifname" doth "$doth" + config_get maclist "$vif" maclist [ -n "$maclist" ] && { # flush MAC list @@ -249,27 +271,34 @@ enable_atheros() { fi ;; wds|sta) - case "$enc" in + config_get_bool usepassphrase "$vif" passphrase 1 + case "$enc" in PSK|psk|PSK2|psk2) case "$enc" in PSK|psk) proto='proto=WPA' - passphrase="${key}" + if [ "$usepassphrase" = "1" ]; then + passphrase="psk=\"${key}\"" + else + passphrase="psk=${key}" + fi ;; PSK2|psk2) proto='proto=RSN' - passphrase=`wpa_passphrase ${ssid} "${key}" | grep psk | grep -v \#| cut -d= -f2` + if [ "$usepassphrase" = "1" ]; then + passphrase="psk=\"${key}\"" + else + passphrase="psk=${key}" + fi ;; esac - cat > /var/run/wpa_supplicant-$ifname.conf <