luci-mod-network: fix uci.remove() deleting entire radio section on wifi join

In handleJoinConfirm(), when the scanned BSS has no VHT/HT info,
uci.remove('wireless', radioDev.getName(), 'htmode') is called
intending to remove only the htmode option. However, uci.remove()
only accepts (conf, sid) and silently ignores the third parameter,
causing the entire wifi-device section to be deleted from the
rpcd session delta.

This makes the radio disappear from the Wireless Overview page
until the session delta is cleared.

Fix by using uci.unset() which correctly handles three parameters
(conf, sid, opt) to remove a single option.

Signed-off-by: Weicheng Xiao <weicheng.xiao@outlook.com>
This commit is contained in:
weicheng04
2026-04-10 16:46:05 +08:00
committed by Paul Donald
parent 354d1e5820
commit 1655946120

View File

@@ -2359,7 +2359,7 @@ return view.extend({
uci.set('wireless', radioDev.getName(), 'htmode', 'HT'+w); uci.set('wireless', radioDev.getName(), 'htmode', 'HT'+w);
} }
else { else {
uci.remove('wireless', radioDev.getName(), 'htmode'); uci.unset('wireless', radioDev.getName(), 'htmode');
} }
uci.set('wireless', radioDev.getName(), 'channel', bss.channel); uci.set('wireless', radioDev.getName(), 'channel', bss.channel);