mirror of https://github.com/hak5/openwrt.git
mac80211/hostapd: fix HT mode setup for RSN ad-hoc networks
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44100lede-17.01
parent
c180e8df1e
commit
768d09be87
|
@ -490,6 +490,38 @@ mac80211_setup_supplicant() {
|
||||||
wpa_supplicant_run "$ifname" ${hostapd_ctrl:+-H $hostapd_ctrl}
|
wpa_supplicant_run "$ifname" ${hostapd_ctrl:+-H $hostapd_ctrl}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mac80211_setup_adhoc_htmode() {
|
||||||
|
case "$htmode" in
|
||||||
|
VHT20|HT20) ibss_htmode=HT20;;
|
||||||
|
HT40*|VHT40|VHT80|VHT160)
|
||||||
|
case "$hwmode" in
|
||||||
|
a)
|
||||||
|
case "$(( ($channel / 4) % 2 ))" in
|
||||||
|
1) ibss_htmode="HT40+" ;;
|
||||||
|
0) ibss_htmode="HT40-";;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case "$htmode" in
|
||||||
|
HT40+) ibss_htmode="HT40+";;
|
||||||
|
HT40-) ibss_htmode="HT40-";;
|
||||||
|
*)
|
||||||
|
if [ "$channel" -lt 7 ]; then
|
||||||
|
ibss_htmode="HT40+"
|
||||||
|
else
|
||||||
|
ibss_htmode="HT40-"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
[ "$auto_channel" -gt 0 ] && ibss_htmode="HT40+"
|
||||||
|
;;
|
||||||
|
*) ibss_htmode="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
mac80211_setup_adhoc() {
|
mac80211_setup_adhoc() {
|
||||||
json_get_vars bssid ssid key mcast_rate
|
json_get_vars bssid ssid key mcast_rate
|
||||||
|
|
||||||
|
@ -523,35 +555,6 @@ mac80211_setup_adhoc() {
|
||||||
mcval=
|
mcval=
|
||||||
[ -n "$mcast_rate" ] && wpa_supplicant_add_rate mcval "$mcast_rate"
|
[ -n "$mcast_rate" ] && wpa_supplicant_add_rate mcval "$mcast_rate"
|
||||||
|
|
||||||
case "$htmode" in
|
|
||||||
VHT20|HT20) ibss_htmode=HT20;;
|
|
||||||
HT40*|VHT40|VHT80|VHT160)
|
|
||||||
case "$hwmode" in
|
|
||||||
a)
|
|
||||||
case "$(( ($channel / 4) % 2 ))" in
|
|
||||||
1) ibss_htmode="HT40+" ;;
|
|
||||||
0) ibss_htmode="HT40-";;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
case "$htmode" in
|
|
||||||
HT40+) ibss_htmode="HT40+";;
|
|
||||||
HT40-) ibss_htmode="HT40-";;
|
|
||||||
*)
|
|
||||||
if [ "$channel" -lt 7 ]; then
|
|
||||||
ibss_htmode="HT40+"
|
|
||||||
else
|
|
||||||
ibss_htmode="HT40-"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
[ "$auto_channel" -gt 0 ] && ibss_htmode="HT40+"
|
|
||||||
;;
|
|
||||||
*) ibss_htmode="" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
iw dev "$ifname" ibss join "$ssid" $freq $ibss_htmode fixed-freq $bssid \
|
iw dev "$ifname" ibss join "$ssid" $freq $ibss_htmode fixed-freq $bssid \
|
||||||
${beacon_int:+beacon-interval $beacon_int} \
|
${beacon_int:+beacon-interval $beacon_int} \
|
||||||
${brstr:+basic-rates $brstr} \
|
${brstr:+basic-rates $brstr} \
|
||||||
|
@ -602,6 +605,7 @@ mac80211_setup_vif() {
|
||||||
;;
|
;;
|
||||||
adhoc)
|
adhoc)
|
||||||
wireless_vif_parse_encryption
|
wireless_vif_parse_encryption
|
||||||
|
mac80211_setup_adhoc_htmode
|
||||||
if [ "$wpa" -gt 0 -o "$auto_channel" -gt 0 ]; then
|
if [ "$wpa" -gt 0 -o "$auto_channel" -gt 0 ]; then
|
||||||
mac80211_setup_supplicant || failed=1
|
mac80211_setup_supplicant || failed=1
|
||||||
else
|
else
|
||||||
|
|
|
@ -596,7 +596,8 @@ wpa_supplicant_add_network() {
|
||||||
}
|
}
|
||||||
|
|
||||||
local ht_str
|
local ht_str
|
||||||
[ -n "$ht" ] && append network_data "htmode=$ht" "$N$T"
|
[[ "$_w_mode" = adhoc ]] || ibss_htmode=
|
||||||
|
[ -n "$ibss_htmode" ] && append network_data "htmode=$ibss_htmode" "$N$T"
|
||||||
|
|
||||||
cat >> "$_config" <<EOF
|
cat >> "$_config" <<EOF
|
||||||
network={
|
network={
|
||||||
|
|
Loading…
Reference in New Issue