luci-mod-network: fix uci.remove() deleting entire radio section on wifi join
authorweicheng04 <redacted>
Fri, 10 Apr 2026 08:46:05 +0000 (16:46 +0800)
committerPaul Donald <redacted>
Fri, 10 Apr 2026 13:51:11 +0000 (15:51 +0200)
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 <redacted>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js

index 12ee36168ac984a608efe6539a9dbdbebcbc7dbb..36c88b4533483ffa8bcaad503e888aab03d3a0d0 100644 (file)
@@ -2359,7 +2359,7 @@ return view.extend({
                                        uci.set('wireless', radioDev.getName(), 'htmode', 'HT'+w);
                                }
                                else {
-                                       uci.remove('wireless', radioDev.getName(), 'htmode');
+                                       uci.unset('wireless', radioDev.getName(), 'htmode');
                                }
 
                                uci.set('wireless', radioDev.getName(), 'channel', bss.channel);
git clone https://git.99rst.org/PROJECT