From ee473ce2a4491a4c6317db676ef2087d24e24268 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer <mschiffer@universe-factory.net> Date: Fri, 12 Jun 2020 00:12:24 +0200 Subject: [PATCH] gluon-config-mode-outdoor: enable 5GHz mesh interfaces when disabling outdoor mode There is no setting to explicitly enable mesh interfaces in the config wizard, so we need to enable mesh interfaces by default when the outdoor mode is disabled (unless site.conf dictates otherwise). The simplest way to achieve this is to delete the 5GHz mesh interface sections when outdoor mode is disabled: 200-wireless would delete and recreate them a moment later anyways, but by deleting them earlier we ensure that the disabled status is initialized from site.conf again. (cherry picked from commit 17bc6228929b38356d4209af64f807432daf713b) --- .../gluon/config-mode/wizard/0250-outdoor.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua b/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua index 3f1f0cbe5..ffa030dd0 100644 --- a/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua +++ b/package/gluon-config-mode-outdoor/luasrc/lib/gluon/config-mode/wizard/0250-outdoor.lua @@ -21,6 +21,24 @@ return function(form, uci) if data ~= outdoor_mode then uci:set('gluon', 'wireless', 'outdoor', data) uci:save('gluon') + + if data == false then + local mesh_ifaces_5ghz = {} + uci:foreach('wireless', 'wifi-device', function(config) + if config.hwmode ~= '11a' and config.hwmode ~= '11na' then + return + end + + local radio_name = config['.name'] + local mesh_iface = 'mesh_' .. radio_name + table.insert(mesh_ifaces_5ghz, mesh_iface) + end) + for _, mesh_iface in ipairs(mesh_ifaces_5ghz) do + uci:delete('wireless', mesh_iface) + end + uci:save('wireless') + end + os.execute('/lib/gluon/upgrade/200-wireless') end end -- GitLab