[backfire] backport: "[package] hostap-driver: introduce "disabled" option for wifi...
[openwrt-10.03/.git] / package / hostap-driver / files / lib / wifi / hostap.sh
index 1f43b2ab1b23a591ae20d17d1c4cd53c8c92d87c..376bc7b1df0d036cb319a770de917cce31d45f3f 100755 (executable)
@@ -9,6 +9,9 @@ scan_prism2() {
        config_get vifs "$device" vifs
        local _c=0
        for vif in $vifs; do
+               config_get_bool disabled "$vif" disabled 0
+               [ $disabled = 0 ] || continue
+
                config_get mode "$vif" mode
                case "$mode" in
                        adhoc|sta|ap|monitor)
@@ -54,9 +57,13 @@ enable_prism2() {
        local device="$1"
 
        config_get rxantenna "$device" rxantenna
-       [ -n "$rxantenna" ] && iwpriv $device antsel_rx "$rxantenna"
-
        config_get txantenna "$device" txantenna
+       config_get_bool diversity "$device" diversity
+       [ -n "$diversity" ] && {
+               rxantenna="1"
+               txantenna="1"
+       }
+       [ -n "$rxantenna" ] && iwpriv $device antsel_rx "$rxantenna"
        [ -n "$txantenna" ] && iwpriv $device antsel_tx "$txantenna"
 
        config_get channel "$device" channel
@@ -72,7 +79,7 @@ enable_prism2() {
                config_get ssid "$vif" ssid
                config_get mode "$vif" mode
 
-               [ "$mode" = "wds" ] || iwconfig "$device" essid "$ssid"
+               [ "$mode" = "wds" ] || iwconfig "$device" essid -- "$ssid"
 
                case "$mode" in
                        sta)