|
|
|
@ -490,6 +490,38 @@ mac80211_setup_supplicant() { |
|
|
|
|
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() { |
|
|
|
|
json_get_vars bssid ssid key mcast_rate |
|
|
|
|
|
|
|
|
@ -523,35 +555,6 @@ mac80211_setup_adhoc() { |
|
|
|
|
mcval= |
|
|
|
|
[ -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 \ |
|
|
|
|
${beacon_int:+beacon-interval $beacon_int} \ |
|
|
|
|
${brstr:+basic-rates $brstr} \ |
|
|
|
@ -602,6 +605,7 @@ mac80211_setup_vif() { |
|
|
|
|
;; |
|
|
|
|
adhoc) |
|
|
|
|
wireless_vif_parse_encryption |
|
|
|
|
mac80211_setup_adhoc_htmode |
|
|
|
|
if [ "$wpa" -gt 0 -o "$auto_channel" -gt 0 ]; then |
|
|
|
|
mac80211_setup_supplicant || failed=1 |
|
|
|
|
else |
|
|
|
|