X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fbroadcom-wl%2Ffiles%2Flib%2Fwifi%2Fbroadcom.sh;h=7d56c10e00afc25dbcd732919debdb0438019ceb;hb=a42072ddf48fbca02b16433c6cf6d841b432198a;hp=5ea82a1b8f13753d6664bc005bbcbc51f01afc01;hpb=1bdd7d046004f7526ac42ebba3b3c2b6fd6974ea;p=librecmc%2Flibrecmc.git diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 5ea82a1b8f..7d56c10e00 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -5,10 +5,12 @@ scan_broadcom() { local wds local adhoc sta apmode mon local adhoc_if sta_if ap_if mon_if + local _c=0 config_get vifs "$device" vifs for vif in $vifs; do config_get mode "$vif" mode + _c=$(($_c + 1)) case "$mode" in adhoc) adhoc=1 @@ -53,7 +55,11 @@ scan_broadcom() { ap=1 infra=1 - mssid=1 + if [ "$_c" -gt 1 ]; then + mssid=1 + else + mssid= + fi apsta=0 radio=1 monitor=0 @@ -111,12 +117,14 @@ enable_broadcom() { config_get vifs "$device" vifs config_get distance "$device" distance config_get slottime "$device" slottime - config_get rxant "$device" rxant - config_get txant "$device" txant + config_get rxantenna "$device" rxantenna + config_get txantenna "$device" txantenna config_get_bool frameburst "$device" frameburst config_get macfilter "$device" macfilter config_get maclist "$device" maclist - local vif_pre_up vif_post_up vif_do_up + config_get macaddr "$device" macaddr + config_get txpower "$device" txpower + local vif_pre_up vif_post_up vif_do_up vif_txpower _c=0 nas="$(which nas)" @@ -145,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" @@ -189,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\"" @@ -223,17 +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" + 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\"" @@ -256,15 +276,15 @@ enable_broadcom() { wlc stdin <