X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/9c3919ac1ee1a379eb9d344fb196f915599f4c39..5d6fc4a9c03b41aa9a8a0e52c2d12ba746d9b6b9:/package/broadcom-wl/files/lib/wifi/broadcom.sh?ds=sidebyside diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 9fed98f81..223827508 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -99,10 +99,11 @@ enable_broadcom() { nas_cmd= if_up= for vif in $vifs; do + config_get mode "$vif" mode append vif_pre_up "vif $_c" "$N" append vif_post_up "vif $_c" "$N" - [ "$vif" = "$sta_if" ] || { + [ "$mode" = "sta" ] || { config_get_bool hidden "$vif" hidden 1 append vif_pre_up "closed $hidden" "$N" config_get_bool isolate "$vif" isolate @@ -117,7 +118,23 @@ enable_broadcom() { config_get enc "$vif" encryption case "$enc" in WEP|wep) - wsec_r=1 + wsec_r=0 + wsec=1 + defkey=1 + config_get key "$vif" key + case "$key" in + [1234]) + defkey="$key" + for knr in 1 2 3 4; do + config_get k "$vif" key$knr + [ -n "$k" ] || continue + [ "$defkey" = "$knr" ] && def="=" || def="" + append vif_pre_up "wepkey $def$knr,$k" "$N" + done + ;; + "");; + *) append vif_pre_up "wepkey 1,$key" "$N";; + esac ;; *psk*|*PSK*) wsec_r=1 @@ -151,13 +168,15 @@ enable_broadcom() { config_get ssid "$vif" ssid append vif_post_up "vlan_mode 0" append vif_post_up "ssid $ssid" "$N" - [ "$wet" = 1 -o "$apsta" = 1 -o "$ap" = 0 -o "$infra" = 0 ] && \ - append vif_do_up "ssid $ssid" "$N" + case "$mode" in + sta|adhoc) append vif_do_up "ssid $ssid" "$N";; + esac 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")"