From d9070eb41a9bcefc76f6b902befc03436115cd34 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Fri, 12 Aug 2022 05:09:42 +0200 Subject: [PATCH 1/3] gluon-core: provide migration for preserve_channels The preserve_channels configuration option was moved to the gluon UCI package without adding a proper migration. Signed-off-by: David Bauer --- .../upgrade/190-preserve-wireless-channels | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 package/gluon-core/luasrc/lib/gluon/upgrade/190-preserve-wireless-channels diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/190-preserve-wireless-channels b/package/gluon-core/luasrc/lib/gluon/upgrade/190-preserve-wireless-channels new file mode 100755 index 00000000..ee25c130 --- /dev/null +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/190-preserve-wireless-channels @@ -0,0 +1,23 @@ +#!/usr/bin/lua + +local wireless = require 'gluon.wireless' +local uci = require('simple-uci').cursor() + +local preserve_channels = wireless.preserve_channels(uci) + +-- Migrate preserve channels from pre-2022.01 +local core_wireless = uci:get_first('gluon-core', 'wireless') +if core_wireless ~= nil then + local preserve_legacy = uci:get_bool('gluon-core', core_wireless, 'preserve_channels') + if preserve_legacy then + preserve_channels = true + end + + uci:delete('gluon-core', core_wireless) + uci:save('gluon-core') +end + +uci:section('gluon', 'wireless', 'wireless', { + preserve_channels = preserve_channels or false, +}) +uci:save('gluon') From 64f75848da565caa643af164ce3006c733a3ba42 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Fri, 12 Aug 2022 05:10:38 +0200 Subject: [PATCH 2/3] docs: update preserve_channels config key path --- docs/features/wlan-configuration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/wlan-configuration.rst b/docs/features/wlan-configuration.rst index 08528196..4f6ea2de 100644 --- a/docs/features/wlan-configuration.rst +++ b/docs/features/wlan-configuration.rst @@ -19,7 +19,7 @@ During upgrades the wifi channel of the 2.4GHz and 5GHz radio will be restored t configured in the site.conf. If you need to preserve a user defined wifi channel during upgrades you can configure this via the uci section ``gluon-core.wireless``:: - uci set gluon-core.@wireless[0].preserve_channels='1' + uci set gluon.wireless.preserve_channels='1' When channels should be preserved, toggling the outdoor mode will have no effect on the channel settings. Therefore, the Outdoor mode settings won't be displayed in config mode. From bffd263617d01764b6a04d1f29771ddaab20f352 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Mon, 15 Aug 2022 00:37:32 +0200 Subject: [PATCH 3/3] gluon-core: return boolean from preserve_channels This method previously returned the string literal of the config key, leading to checks evaluating to true even in case this option was disabled. Signed-off-by: David Bauer --- package/gluon-core/luasrc/usr/lib/lua/gluon/wireless.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/wireless.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/wireless.lua index 62fe3228..ea6343b9 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/wireless.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/wireless.lua @@ -123,7 +123,7 @@ function M.foreach_radio(uci, f) end function M.preserve_channels(uci) - return uci:get('gluon', 'wireless', 'preserve_channels') + return uci:get_bool('gluon', 'wireless', 'preserve_channels') end function M.device_supports_wpa3()