diff --git a/docs/features/wired-mesh.rst b/docs/features/wired-mesh.rst index 1ea263a9..2358e276 100644 --- a/docs/features/wired-mesh.rst +++ b/docs/features/wired-mesh.rst @@ -32,12 +32,12 @@ Mesh-on-WAN It's possible to enable Mesh-on-WAN like this:: - uci set network.mesh_wan.auto=1 + uci set network.mesh_wan.disabled=0 uci commit network It may be disabled by running:: - uci set network.mesh_wan.auto=0 + uci set network.mesh_wan.disabled=1 uci commit network @@ -46,7 +46,7 @@ Mesh-on-LAN Configuring Mesh-on-LAN is a bit more complicated:: - uci set network.mesh_lan.auto=1 + uci set network.mesh_lan.disabled=0 for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do uci del_list network.client.ifname=$ifname done @@ -54,7 +54,7 @@ Configuring Mesh-on-LAN is a bit more complicated:: It may be disabled by running:: - uci set network.mesh_lan.auto=0 + uci set network.mesh_lan.disabled=1 for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do uci add_list network.client.ifname=$ifname done diff --git a/package/gluon-client-bridge/luasrc/lib/gluon/upgrade/300-gluon-client-bridge-network b/package/gluon-client-bridge/luasrc/lib/gluon/upgrade/300-gluon-client-bridge-network index cb626814..5ed4524f 100755 --- a/package/gluon-client-bridge/luasrc/lib/gluon/upgrade/300-gluon-client-bridge-network +++ b/package/gluon-client-bridge/luasrc/lib/gluon/upgrade/300-gluon-client-bridge-network @@ -17,7 +17,7 @@ if type(interfaces) == 'string' then end end -if sysconfig.lan_ifname and not ifname and not uci:get_bool('network', 'mesh_lan', 'auto') then +if sysconfig.lan_ifname and uci:get_bool('network', 'mesh_lan', 'disabled') then for lanif in sysconfig.lan_ifname:gmatch('%S+') do util.add_to_set(interfaces, lanif) end diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan b/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan index ac708f99..060a2d4e 100755 --- a/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan @@ -11,9 +11,14 @@ uci:section('network', 'interface', 'mesh_wan', { index = 0, }) -if uci:get('network', 'mesh_wan', 'auto') == nil then - uci:set('network', 'mesh_wan', 'auto', site.mesh_on_wan(false)) +local enable = site.mesh_on_wan(false) +local old_auto = uci:get('network', 'mesh_wan', 'auto') +local old_disabled = uci:get('network', 'mesh_wan', 'disabled') +if old_auto ~= nil or old_disabled ~= nil then + enable = old_auto ~= '0' and old_disabled ~= '1' end +uci:set('network', 'mesh_wan', 'disabled', not enable) + if uci:get('network', 'mesh_wan', 'transitive') == nil then uci:set('network', 'mesh_wan', 'transitive', true) end @@ -21,6 +26,7 @@ if uci:get('network', 'mesh_wan', 'legacy') == nil then uci:set('network', 'mesh_wan', 'legacy', old_proto == 'gluon_mesh') end +uci:delete('network', 'mesh_wan', 'auto') uci:delete('network', 'mesh_wan', 'fixed_mtu') uci:save('network') diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan b/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan index 2e72ff10..8bde35de 100755 --- a/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan @@ -21,25 +21,28 @@ uci:section('network', 'interface', 'mesh_lan', { legacy = old_proto == 'gluon_mesh', }) -if uci:get('network', 'mesh_lan', 'auto') == nil then - local enable = site.mesh_on_lan(false) +local enable = site.mesh_on_lan(false) +local old_auto = uci:get('network', 'mesh_lan', 'auto') +local old_disabled = uci:get('network', 'mesh_lan', 'disabled') +if old_auto ~= nil or old_disabled ~= nil then + enable = old_auto ~= '0' and old_disabled ~= '1' +end - if enable then - local interfaces = uci:get_list('network', 'client', 'ifname') +if enable then + local interfaces = uci:get_list('network', 'client', 'ifname') - if interfaces then - for lanif in sysconfig.lan_ifname:gmatch('%S+') do - if util.contains(interfaces, lanif) then - enable = false - break - end + if interfaces then + for lanif in sysconfig.lan_ifname:gmatch('%S+') do + if util.contains(interfaces, lanif) then + enable = false + break end end end - - uci:set('network', 'mesh_lan', 'auto', enable) end +uci:set('network', 'mesh_lan', 'disabled', not enable) + if uci:get('network', 'mesh_lan', 'transitive') == nil then uci:set('network', 'mesh_lan', 'transitive', true) end @@ -47,6 +50,7 @@ if uci:get('network', 'mesh_lan', 'legacy') == nil then uci:set('network', 'mesh_lan', 'legacy', old_proto == 'gluon_mesh') end +uci:delete('network', 'mesh_lan', 'auto') uci:delete('network', 'mesh_lan', 'fixed_mtu') uci:save('network') diff --git a/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua b/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua index 5e7cbb4f..5a6c3b57 100644 --- a/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua +++ b/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua @@ -77,10 +77,10 @@ end local s = f:section(Section) local mesh_wan = s:option(Flag, "mesh_wan", translate("Enable meshing on the WAN interface")) -mesh_wan.default = uci:get_bool("network", "mesh_wan", "auto") +mesh_wan.default = not uci:get_bool("network", "mesh_wan", "disabled") function mesh_wan:write(data) - uci:set("network", "mesh_wan", "auto", data) + uci:set("network", "mesh_wan", "disabled", not data) end local mesh_wan_legacy = s:option(Flag, "mesh_wan_legacy", translate("Use legacy mode for WAN meshing")) @@ -95,10 +95,10 @@ if sysconfig.lan_ifname then local s = f:section(Section) local mesh_lan = s:option(Flag, "mesh_lan", translate("Enable meshing on the LAN interface")) - mesh_lan.default = uci:get_bool("network", "mesh_lan", "auto") + mesh_lan.default = not uci:get_bool("network", "mesh_lan", "disabled") function mesh_lan:write(data) - uci:set("network", "mesh_lan", "auto", data) + uci:set("network", "mesh_lan", "disabled", not data) local interfaces = uci:get_list("network", "client", "ifname")