X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7d9767f970a4092a66a6ef90e4c084c1f8b63b56..1a4a2b5ae76b2c685d4142402e1190431af629b8:/package/broadcom-wl/files/lib/wifi/broadcom.sh diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index aa8258d3d..7d56c10e0 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -124,7 +124,7 @@ enable_broadcom() { config_get maclist "$device" maclist config_get macaddr "$device" macaddr config_get txpower "$device" txpower - local vif_pre_up vif_post_up vif_do_up + local vif_pre_up vif_post_up vif_do_up vif_txpower _c=0 nas="$(which nas)" @@ -153,6 +153,8 @@ enable_broadcom() { esac for vif in $vifs; do + config_get vif_txpower "$vif" txpower + config_get mode "$vif" mode append vif_pre_up "vif $_c" "$N" append vif_post_up "vif $_c" "$N" @@ -197,6 +199,7 @@ enable_broadcom() { 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;; *) auth=4; wsec=2;; esac eval "${vif}_key=\"\$key\"" @@ -231,18 +234,26 @@ enable_broadcom() { append vif_post_up "monitor $monitor" "$N" append vif_post_up "passive $passive" "$N" } + + [ "$mode" = "adhoc" ] && { + config_get bssid "$vif" bssid + [ -n "$bssid" ] && { + append vif_pre_up "des_bssid $bssid" "$N" + append vif_pre_up "allow_mode 1" "$N" + } + } || append vif_pre_up "allow_mode 0" "$N" append vif_post_up "enabled 1" "$N" config_get ifname "$vif" ifname #append if_up "ifconfig $ifname up" ";$N" - [ -z "$macaddr" ] || append if_up "ifconfig $ifname hw ether $macaddr" ";$N" + local net_cfg bridge net_cfg="$(find_net_config "$vif")" [ -z "$net_cfg" ] || { bridge="$(bridge_interface "$net_cfg")" - append if_up "start_net '$ifname' '$net_cfg'" ";$N" append if_up "set_wifi_up '$vif' '$ifname'" ";$N" + append if_up "start_net '$ifname' '$net_cfg' \$(wlc ifname '$ifname' bssid)" ";$N" } [ -z "$nasopts" ] || { eval "${vif}_ssid=\"\$ssid\"" @@ -265,9 +276,9 @@ enable_broadcom() { wlc stdin <