From 597b84c9d8164b6ded220c2832ed6927a2a99170 Mon Sep 17 00:00:00 2001 From: Bob Ham Date: Sat, 3 Jan 2026 12:16:58 +0000 Subject: [PATCH] wireless: Limit cleaning to LiMe-created interfaces Don't nuke all the wireless interfaces, just the interfaces that LibreMesh itself creates. Except for the OpenWrt-generated default interfaces, which are disabled. --- .../files/usr/lib/lua/lime/wireless.lua | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/lime-system/files/usr/lib/lua/lime/wireless.lua b/packages/lime-system/files/usr/lib/lua/lime/wireless.lua index 9c811ab76..5a7ace59b 100644 --- a/packages/lime-system/files/usr/lib/lua/lime/wireless.lua +++ b/packages/lime-system/files/usr/lib/lua/lime/wireless.lua @@ -20,10 +20,31 @@ function wireless.get_phy_mac(phy) return utils.split(mac, ":") end +function wireless.pre() + local uci = config.get_uci_cursor() + + local function disable_default(s) + if s[".name"] == "default_" .. s["device"] then + print("Disabling default wireless interface '" .. s[".name"] .. "'") + uci:set("wireless", s[".name"], "disabled", "1") + end + end + uci:foreach("wireless", "wifi-iface", disable_default) + + uci:save("wireless") +end + function wireless.clean() utils.log("Clearing wireless config...") local uci = config.get_uci_cursor() - uci:foreach("wireless", "wifi-iface", function(s) uci:delete("wireless", s[".name"]) end) + + local function delete_lime_section(s) + if utils.stringStarts(s[".name"], wireless.limeIfNamePrefix) then + uci:delete("wireless", s[".name"]) + end + end + uci:foreach("wireless", "wifi-iface", delete_lime_section) + uci:save("wireless") end