;;
sta)
local wdsflag
- [ "$wds" -gt 0 ] && wdsflag="wds on"
+ [ "$wds" -gt 0 ] && wdsflag="4addr on"
iw phy "$phy" interface add "$ifname" type managed $wdsflag
config_get_bool powersave "$vif" powersave 0
[ "$powersave" -gt 0 ] && powersave="on" || powersave="off"
esac
# All interfaces must have unique mac addresses
- # which can either be explicitly set in the device
+ # which can either be explicitly set in the device
# section, or automatically generated
config_get macaddr "$device" macaddr
local mac_1="${macaddr%%:*}"
config_get vif_mac "$vif" macaddr
[ -n "$vif_mac" ] || {
- if [ "$i" -gt 0 ]; then
+ if [ "$i" -gt 0 ]; then
offset="$(( 2 + $i * 4 ))"
else
offset="0"
# none -> NO encryption
#
# wep + keymgmt = '' -> we use iw to connect to the
- # network.
+ # network.
#
# wep + keymgmt = 'NONE' -> wpa_supplicant will be
# configured to handle the wep connection
zidx = idx - 1
config_get key "$vif" "key${idx}"
if [ -n "$key" ]; then
- append keystring "${zidx}:${key} "
+ append keystring "${zidx}:${key} "
fi
done
fi
;;
sta|mesh)
config_get bssid "$vif" bssid
- case "$enc" in
+ case "$enc" in
wep)
if [ -e "$keymgmt" ]; then
[ -n "$keystring" ] &&
detect_mac80211() {
devidx=0
config_load wireless
+ while :; do
+ config_get type "wifi$devidx" type
+ [ -n "$type" ] || break
+ devidx=$(($devidx + 1))
+ done
for dev in $(ls /sys/class/ieee80211); do
found=0
config_foreach check_device wifi-device
[ "$found" -gt 0 ] && continue
- while :; do
- config_get type "wifi$devidx" type
- [ -n "$type" ] || break
- devidx=$(($devidx + 1))
- done
mode_11n=""
mode_band="g"
channel="5"
[ "$ht_cap" -gt 0 ] && {
mode_11n="n"
list=" list ht_capab"
- [ "$(($ht_cap & 2))" -eq 1 ] && append ht_capab "$list LDPC" "$N"
+ [ "$(($ht_cap & 1))" -eq 1 ] && append ht_capab "$list LDPC" "$N"
[ "$(($ht_cap & 2))" -eq 2 ] && append ht_capab "$list HT40-" "$N"
[ "$(($ht_cap & 32))" -eq 32 ] && append ht_capab "$list SHORT-GI-20" "$N"
[ "$(($ht_cap & 64))" -eq 64 ] && append ht_capab "$list SHORT-GI-40" "$N"
[ "$(($ht_cap & 4096))" -eq 4096 ] && append ht_capab "$list DSSS_CCK-40" "$N"
}
- iw phy "$dev" info | grep -q '2412 MHz' || mode_band="a"; channel="36"
+ iw phy "$dev" info | grep -q '2412 MHz' || { mode_band="a"; channel="36"; }
cat <<EOF
config wifi-device wifi$devidx
option encryption none
EOF
+ devidx=$(($devidx + 1))
done
}