gluon-web-network: update wired mesh settings for new role-based configuration

This commit is contained in:
Matthias Schiffer 2022-01-23 17:34:29 +01:00
parent 316e96a467
commit 6dcee2e324
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C
4 changed files with 33 additions and 23 deletions

View File

@ -28,6 +28,9 @@ msgstr "PoE-Passthrough aktivieren"
msgid "Enable PoE Power Port %s" msgid "Enable PoE Power Port %s"
msgstr "PoE-Ausgabe auf Port %s aktivieren" msgstr "PoE-Ausgabe auf Port %s aktivieren"
msgid "Enable meshing on the Ethernet interface"
msgstr "Mesh auf dem Ethernet-Port aktivieren"
msgid "Enable meshing on the LAN interface" msgid "Enable meshing on the LAN interface"
msgstr "Mesh auf dem LAN-Port aktivieren" msgstr "Mesh auf dem LAN-Port aktivieren"

View File

@ -28,6 +28,9 @@ msgstr ""
msgid "Enable PoE Power Port %s" msgid "Enable PoE Power Port %s"
msgstr "" msgstr ""
msgid "Enable meshing on the Ethernet interface"
msgstr ""
msgid "Enable meshing on the LAN interface" msgid "Enable meshing on the LAN interface"
msgstr "Activer le réseau MESH sur le port LAN" msgstr "Activer le réseau MESH sur le port LAN"

View File

@ -19,6 +19,9 @@ msgstr ""
msgid "Enable PoE Power Port %s" msgid "Enable PoE Power Port %s"
msgstr "" msgstr ""
msgid "Enable meshing on the Ethernet interface"
msgstr ""
msgid "Enable meshing on the LAN interface" msgid "Enable meshing on the LAN interface"
msgstr "" msgstr ""

View File

@ -76,36 +76,37 @@ end
s = f:section(Section) s = f:section(Section)
local mesh_wan = s:option(Flag, "mesh_wan", translate("Enable meshing on the WAN interface")) local wired_mesh_help = {
mesh_wan.default = not uci:get_bool("network", "mesh_wan", "disabled") single = translate('Enable meshing on the Ethernet interface'),
wan = translate('Enable meshing on the WAN interface'),
lan = translate('Enable meshing on the LAN interface'),
}
function mesh_wan:write(data) local function wired_mesh(iface)
uci:set("network", "mesh_wan", "disabled", not data) if not sysconfig[iface .. '_ifname'] then return end
end local iface_roles = uci:get_list('gluon', 'iface_' .. iface, 'role')
if sysconfig.lan_ifname then local option = s:option(Flag, 'mesh_' .. iface, wired_mesh_help[iface])
s = f:section(Section) option.default = util.contains(iface_roles, 'mesh') ~= false
local mesh_lan = s:option(Flag, "mesh_lan", translate("Enable meshing on the LAN interface")) function option:write(data)
mesh_lan.default = not uci:get_bool("network", "mesh_lan", "disabled") local roles = uci:get_list('gluon', 'iface_' .. iface, 'role')
if data then
function mesh_lan:write(data) util.add_to_set(roles, 'mesh')
uci:set("network", "mesh_lan", "disabled", not data) else
util.remove_from_set(roles, 'mesh')
local interfaces = uci:get_list("network", "client", "ifname")
for lanif in sysconfig.lan_ifname:gmatch('%S+') do
if data then
util.remove_from_set(interfaces, lanif)
else
util.add_to_set(interfaces, lanif)
end
end end
uci:set_list('gluon', 'iface_' .. iface, 'role', roles)
uci:set_list("network", "client", "ifname", interfaces) -- Reconfigure on next reboot
uci:set('gluon', 'core', 'reconfigure', true)
end end
end end
wired_mesh('single')
wired_mesh('wan')
wired_mesh('lan')
local section local section
uci:foreach("system", "gpio_switch", function(si) uci:foreach("system", "gpio_switch", function(si)
if si[".name"]:match("poe") then if si[".name"]:match("poe") then
@ -160,7 +161,7 @@ function f:write()
uci:delete("network", "wan6", "ip6gw") uci:delete("network", "wan6", "ip6gw")
end end
uci:commit('gluon')
uci:commit("network") uci:commit("network")
uci:commit('system') uci:commit('system')
end end