gluon-web-network: update wired mesh settings for new role-based configuration
This commit is contained in:
		
							parent
							
								
									316e96a467
								
							
						
					
					
						commit
						6dcee2e324
					
				| @ -28,6 +28,9 @@ msgstr "PoE-Passthrough aktivieren" | ||||
| msgid "Enable PoE Power Port %s" | ||||
| 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" | ||||
| msgstr "Mesh auf dem LAN-Port aktivieren" | ||||
| 
 | ||||
|  | ||||
| @ -28,6 +28,9 @@ msgstr "" | ||||
| msgid "Enable PoE Power Port %s" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Enable meshing on the Ethernet interface" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Enable meshing on the LAN interface" | ||||
| msgstr "Activer le réseau MESH sur le port LAN" | ||||
| 
 | ||||
|  | ||||
| @ -19,6 +19,9 @@ msgstr "" | ||||
| msgid "Enable PoE Power Port %s" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Enable meshing on the Ethernet interface" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Enable meshing on the LAN interface" | ||||
| msgstr "" | ||||
| 
 | ||||
|  | ||||
| @ -76,35 +76,36 @@ end | ||||
| 
 | ||||
| s = f:section(Section) | ||||
| 
 | ||||
| local mesh_wan = s:option(Flag, "mesh_wan", translate("Enable meshing on the WAN interface")) | ||||
| mesh_wan.default = not uci:get_bool("network", "mesh_wan", "disabled") | ||||
| local wired_mesh_help = { | ||||
| 	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) | ||||
| 	uci:set("network", "mesh_wan", "disabled", not data) | ||||
| end | ||||
| local function wired_mesh(iface) | ||||
| 	if not sysconfig[iface .. '_ifname'] then return end | ||||
| 	local iface_roles = uci:get_list('gluon', 'iface_' .. iface, 'role') | ||||
| 
 | ||||
| if sysconfig.lan_ifname then | ||||
| 	s = f:section(Section) | ||||
| 	local option = s:option(Flag, 'mesh_' .. iface, wired_mesh_help[iface]) | ||||
| 	option.default = util.contains(iface_roles, 'mesh') ~= false | ||||
| 
 | ||||
| 	local mesh_lan = s:option(Flag, "mesh_lan", translate("Enable meshing on the LAN interface")) | ||||
| 	mesh_lan.default = not uci:get_bool("network", "mesh_lan", "disabled") | ||||
| 
 | ||||
| 	function mesh_lan:write(data) | ||||
| 		uci:set("network", "mesh_lan", "disabled", not data) | ||||
| 
 | ||||
| 		local interfaces = uci:get_list("network", "client", "ifname") | ||||
| 
 | ||||
| 		for lanif in sysconfig.lan_ifname:gmatch('%S+') do | ||||
| 	function option:write(data) | ||||
| 		local roles = uci:get_list('gluon', 'iface_' .. iface, 'role') | ||||
| 		if data then | ||||
| 				util.remove_from_set(interfaces, lanif) | ||||
| 			util.add_to_set(roles, 'mesh') | ||||
| 		else | ||||
| 				util.add_to_set(interfaces, lanif) | ||||
| 			util.remove_from_set(roles, 'mesh') | ||||
| 		end | ||||
| 		uci:set_list('gluon', 'iface_' .. iface, 'role', roles) | ||||
| 
 | ||||
| 		-- Reconfigure on next reboot | ||||
| 		uci:set('gluon', 'core', 'reconfigure', true) | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| 		uci:set_list("network", "client", "ifname", interfaces) | ||||
| 	end | ||||
| end | ||||
| wired_mesh('single') | ||||
| wired_mesh('wan') | ||||
| wired_mesh('lan') | ||||
| 
 | ||||
| local section | ||||
| uci:foreach("system", "gpio_switch", function(si) | ||||
| @ -160,7 +161,7 @@ function f:write() | ||||
| 		uci:delete("network", "wan6", "ip6gw") | ||||
| 	end | ||||
| 
 | ||||
| 
 | ||||
| 	uci:commit('gluon') | ||||
| 	uci:commit("network") | ||||
| 	uci:commit('system') | ||||
| end | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user