uhttpd: Fix wrong certificate options with multiple words
[openwrt.git] / package / broadcom-wl / files / lib / wifi / broadcom.sh
index ffe8d1d..8fe801d 100644 (file)
@@ -3,12 +3,15 @@ append DRIVERS "broadcom"
 scan_broadcom() {
        local device="$1"
        local wds
-       local adhoc sta apmode mon
+       local adhoc sta apmode mon disabled
        local adhoc_if sta_if ap_if mon_if
        local _c=0
 
        config_get vifs "$device" vifs
        for vif in $vifs; do
+               config_get_bool disabled "$vif" disabled 0
+               [ $disabled -eq 0 ] || continue
+
                config_get mode "$vif" mode
                _c=$(($_c + 1))
                case "$mode" in
@@ -192,7 +195,7 @@ enable_broadcom() {
                nasopts=
                config_get enc "$vif" encryption
                case "$enc" in
-                       *WEP*|*wep*)
+                       *wep*)
                                wsec_r=1
                                wsec=1
                                defkey=1
@@ -215,31 +218,56 @@ enable_broadcom() {
                                        *) append vif_do_up "wepkey =1,$key" "$N";;
                                esac
                        ;;
-                       *psk*|*PSK*)
+                       *psk*)
                                wsec_r=1
                                config_get key "$vif" key
+
+                               # psk version + default cipher
                                case "$enc" in
-                                       wpa*+wpa2*|WPA*+WPA2*|*psk+*psk2|*PSK+*PSK2) auth=132; wsec=6;;
-                                       wpa2*|WPA2*|*PSK2|*psk2) auth=128; wsec=4;;
-                                       *aes|*AES) auth=4; wsec=4;;
+                                       *mixed*|*psk+psk2*) auth=132; wsec=6;;
+                                       *psk2*) auth=128; wsec=4;;
                                        *) auth=4; wsec=2;;
                                esac
+
+                               # cipher override
+                               case "$enc" in
+                                       *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) wsec=6;;
+                                       *aes*|*ccmp*) wsec=4;;
+                                       *tkip*) wsec=2;;
+                               esac
+
+                               # group rekey interval
+                               config_get rekey "$vif" wpa_group_rekey
+
                                eval "${vif}_key=\"\$key\""
-                               nasopts="-k \"\$${vif}_key\""
+                               nasopts="-k \"\$${vif}_key\"${rekey:+ -g $rekey}"
                        ;;
-                       *wpa*|*WPA*)
+                       *wpa*)
                                wsec_r=1
                                eap_r=1
                                config_get key "$vif" key
                                config_get server "$vif" server
                                config_get port "$vif" port
+
+                               # wpa version + default cipher
                                case "$enc" in
-                                       wpa*+wpa2*|WPA*+WPA2*) auth=66; wsec=6;;
-                                       wpa2*|WPA2*) auth=64; wsec=4;;
+                                       *mixed*|*wpa+wpa2*) auth=66; wsec=6;;
+                                       *wpa2*) auth=64; wsec=4;;
                                        *) auth=2; wsec=2;;
                                esac
+
+                               # cipher override
+                               case "$enc" in
+                                       *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) wsec=6;;
+                                       *aes*|*ccmp*) wsec=4;;
+                                       *tkip*) wsec=2;;
+                               esac
+
+                               # group rekey interval
+                               config_get rekey "$vif" wpa_group_rekey
+
                                eval "${vif}_key=\"\$key\""
-                               nasopts="-r \"\$${vif}_key\" -h $server -p ${port:-1812}"
+                               nasopts="-r \"\$${vif}_key\" -h $server -p ${port:-1812}${rekey:+ -g $rekey}"
                        ;;
                esac
                append vif_do_up "wsec $wsec" "$N"
@@ -344,7 +372,7 @@ detect_broadcom() {
                cat <<EOF
 config wifi-device  wl${i}
        option type     broadcom
-       option channel  5
+       option channel  11
 
        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 1
This page took 0.024102 seconds and 4 git commands to generate.