config_get country "$device" country
config_get hwmode "$device" hwmode
config_get channel "$device" channel
+ config_get beacon_int "$device" beacon_int
+ config_get basic_rate_list "$device" basic_rate
config_get_bool noscan "$device" noscan
[ -n "$channel" -a -z "$hwmode" ] && wifi_fixup_hwmode "$device"
[ "$channel" = auto ] && channel=
}
}
+ local country_ie=0
+ [ -n "$country" ] && country_ie=1
+ config_get_bool country_ie "$device" country_ie "$country_ie"
+ [ "$country_ie" -gt 0 ] && append base_cfg "ieee80211d=1" "$N"
+
config_get macfilter "$vif" macfilter
case "$macfilter" in
allow)
echo "$mac" >> $macfile
done
}
+
+ local br brval brstr
+ [ -n "$basic_rate_list" ] && {
+ for br in $basic_rate_list; do
+ brval="$(($br / 100))"
+ [ -n "$brstr" ] && brstr="$brstr "
+ brstr="$brstr$brval"
+ done
+ }
+
cat >> "$cfgfile" <<EOF
ctrl_interface=/var/run/hostapd-$phy
driver=nl80211
tx_queue_data0_burst=1.5
${hwmode:+hw_mode=$hwmode}
${channel:+channel=$channel}
+${beacon_int:+beacon_int=$beacon_int}
${country:+country_code=$country}
${noscan:+noscan=$noscan}
+${brstr:+basic_rates=$brstr}
$base_cfg
EOF
local macaddr hidden maxassoc wmm
config_get macaddr "$vif" macaddr
config_get maxassoc "$vif" maxassoc
+ config_get dtim_period "$vif" dtim_period
+ config_get max_listen_int "$vif" max_listen_int
config_get_bool hidden "$vif" hidden 0
config_get_bool wmm "$vif" wmm 1
cat >> /var/run/hostapd-$phy.conf <<EOF
wmm_enabled=$wmm
bssid=$macaddr
ignore_broadcast_ssid=$hidden
+${dtim_period:+dtim_period=$dtim_period}
+${max_listen_int:+max_listen_interval=$max_listen_int}
${maxassoc:+max_num_sta=$maxassoc}
EOF
}
config_get txpower "$device" txpower
config_get country "$device" country
config_get distance "$device" distance
- config_get txantenna "$device" txantenna
- config_get rxantenna "$device" rxantenna
+ config_get txantenna "$device" txantenna all
+ config_get rxantenna "$device" rxantenna all
config_get frag "$device" frag
config_get rts "$device" rts
find_mac80211_phy "$device" || return 0
fixed=1
}
- local antspec="${txantenna:+$txantenna }$rxantenna"
- iw phy "$phy" set antenna ${antspec:-all}
+ iw phy "$phy" set antenna $txantenna $rxantenna >/dev/null 2>&1
[ -n "$distance" ] && iw phy "$phy" set distance "$distance"
[ -n "$frag" ] && iw phy "$phy" set frag "${frag%%.*}"
adhoc)
config_get bssid "$vif" bssid
config_get ssid "$vif" ssid
- config_get bintval "$vif" bintval
- config_get basicrates "$vif" basicrates
+ config_get beacon_int "$device" beacon_int
+ config_get basic_rate_list "$device" basic_rate
config_get encryption "$vif" encryption
config_get key "$vif" key 1
config_get mcast_rate "$vif" mcast_rate
[ $idx -eq $key ] && ikey="d:$ikey"
append keyspec "$ikey"
}
+ done
;;
*) append keyspec "d:0:$(prepare_key_wep "$key")" ;;
esac
}
+ local br brval brsub brstr
+ [ -n "$basic_rate_list" ] && {
+ for br in $basic_rate_list; do
+ brval="$(($br / 1000))"
+ brsub="$((($br / 100) % 10))"
+ [ "$brsub" -gt 0 ] && brval="$brval.$brsub"
+ [ -n "$brstr" ] && brstr="$brstr,"
+ brstr="$brstr$brval"
+ done
+ }
+
local mcval=""
[ -n "$mcast_rate" ] && {
mcval="$(($mcast_rate / 1000))"
[ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub"
}
- iw dev "$ifname" ibss join "$ssid" $freq \
+ config_get htmode "$device" htmode
+ case "$htmode" in
+ HT20|HT40+|HT40-) ;;
+ *) htmode= ;;
+ esac
+
+ iw dev "$ifname" ibss join "$ssid" $freq $htmode \
${fixed:+fixed-freq} $bssid \
+ ${beacon_int:+beacon-interval $beacon_int} \
+ ${brstr:+basic-rates $brstr} \
${mcval:+mcast-rate $mcval} \
- ${bintval:+beacon-interval $bintval} \
- ${basicrates:+basic-rates $basicrates} \
${keyspec:+keys $keyspec}
;;
sta)
}
-check_device() {
+check_mac80211_device() {
config_get phy "$1" phy
[ -z "$phy" ] && {
find_mac80211_phy "$1" >/dev/null || return 0
done
for dev in $(ls /sys/class/ieee80211); do
found=0
- config_foreach check_device wifi-device
+ config_foreach check_mac80211_device wifi-device
[ "$found" -gt 0 ] && continue
mode_11n=""