From ea7452df5e8b755fd808bdfd51bfd95f1222368e Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 21 Apr 2024 00:57:16 +0200 Subject: [PATCH] luci-mod-network: wireless.js: match AP channel and htmode on join Set a matching HT mode and channel number on joining a wireless network. Fixes: #7066 Signed-off-by: Jo-Philipp Wich --- .../resources/view/network/wireless.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js index 7269a1fb45..97f46ec9cf 100644 --- a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js +++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js @@ -2030,6 +2030,26 @@ return view.extend({ uci.unset('wireless', radioDev.getName(), 'disabled'); } + var htmodes = radioDev.getHTModes(); + + if (bss.vht_operation && htmodes && htmodes.indexOf('VHT20') !== -1) { + for (var w = bss.vht_operation.channel_width; w >= 20; w /= 2) { + if (htmodes.indexOf('VHT'+w) !== -1) { + uci.set('wireless', radioDev.getName(), 'htmode', 'VHT'+w); + break; + } + } + } + else if (bss.ht_operation && htmodes && htmodes.indexOf('HT20') !== -1) { + var w = (bss.ht_operation.secondary_channel_offset == 'no secondary') ? 20 : 40; + uci.set('wireless', radioDev.getName(), 'htmode', 'HT'+w); + } + else { + uci.remove('wireless', radioDev.getName(), 'htmode'); + } + + uci.set('wireless', radioDev.getName(), 'channel', bss.channel); + section_id = next_free_sid(wifi_sections.length); uci.add('wireless', 'wifi-iface', section_id); -- 2.30.2