From e6491287ba02d3b5b2f30772c0516f9d22b6cd71 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 6 Jun 2020 16:30:38 +0200
Subject: [PATCH] gluon-core: create disabled mesh interface sections in
 outdoor mode

The interfaces should always exist and just be disabled when outdoor
mode is enabled. Not creating them at all leads to an issue in the
advanced wifi settings where an additional reload of the page is
necessary after enabling or disabling the ourdoor mode to make the mesh
VIF options appear or disappear.

(cherry picked from commit b15b008e6951084531b69583076931be844fe075)
---
 package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless b/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless
index 5cc43f685..f72908a21 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/200-wireless
@@ -162,12 +162,13 @@ local function fixup_wan(radio, index)
 	uci:set('wireless', name, 'macaddr', macaddr)
 end
 
-local function configure_mesh_wireless(radio, index, config)
+local function configure_mesh_wireless(radio, index, config, disabled)
 	local radio_name = radio['.name']
 	local suffix = radio_name:match('^radio(%d+)$')
 
 	configure_mesh(config.mesh(), radio, index, suffix,
 		first_non_nil(
+			disabled,
 			is_disabled('mesh_' .. radio_name),
 			config.mesh.disabled(false)
 		)
@@ -215,7 +216,7 @@ wireless.foreach_radio(uci, function(radio, index, config)
 			util.add_to_set(hostapd_options, 'country3=0x4f')
 			uci:set_list('wireless', radio_name, 'hostapd_options', hostapd_options)
 
-			uci:delete('wireless', 'mesh_' .. radio_name)
+			configure_mesh_wireless(radio, index, config, true)
 		else
 			uci:delete('wireless', radio_name, 'channels')
 
-- 
GitLab