[8/9] hostapd: Fix 40 MHz flags when manually chosing the channel
Commit Message
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
---
src/initscripts/packages/hostapd | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
@@ -189,6 +189,9 @@ write_config() {
local he_caps=()
local eht_caps=()
+ # Clear [HT40+][HT40-]
+ ht_flags="$(( ht_flags & ~0x0002 ))"
+
# HT Capabilities
for flag in ${!HT_CAPS[@]}; do
if (( ${ht_flags} & ${flag} )); then
@@ -381,8 +384,32 @@ write_config() {
local enable_n=0
case "${CONFIG["MODE"]}" in
- HT*|VHT*|HE*|EHT*)
+ HT20|VHT20|HE20|EHT20)
+ enable_n=1
+ ;;
+
+ *40|*80|*160|*320)
enable_n=1
+
+ case "${CONFIG["BAND"]}" in
+ 6g|5g)
+ case "$(( ((${CONFIG["CHANNEL"]} / 4) + channel_offset) % 2 ))" in
+ 0)
+ ht_caps+=( "[HT40-]" )
+ ;;
+ 1)
+ ht_caps+=( "[HT40+]" )
+ ;;
+ esac
+ ;;
+ 2g)
+ if [ "${CONFIG["CHANNEL"]}" -lt 7 ]; then
+ ht_caps+=( "[HT40+]" )
+ else
+ ht_caps+=( "[HT40-]" )
+ fi
+ ;;
+ esac
;;
esac