Merge remote-tracking branch 'origin/mesh-on-lan'
This commit is contained in:
commit
a258092760
@ -130,6 +130,9 @@ fastd_mesh_vpn
|
||||
mesh_on_wan : optional
|
||||
Enables the mesh on the WAN port (``true`` or ``false``).
|
||||
|
||||
mesh_on_lan : optional
|
||||
Enables the mesh on the LAN port (``true`` or ``false``).
|
||||
|
||||
autoupdater : package
|
||||
Configuration for the autoupdater feature of Gluon.
|
||||
::
|
||||
|
@ -13,6 +13,7 @@ $Id$
|
||||
]]--
|
||||
|
||||
local uci = luci.model.uci.cursor()
|
||||
local sysconfig = require 'gluon.sysconfig'
|
||||
|
||||
local wan = uci:get_all("network", "wan")
|
||||
local wan6 = uci:get_all("network", "wan6")
|
||||
@ -86,6 +87,13 @@ o = s:option(Flag, "mesh_wan", translate("Enable meshing on the WAN interface"))
|
||||
o.default = uci:get_bool("network", "mesh_wan", "auto") and o.enabled or o.disabled
|
||||
o.rmempty = false
|
||||
|
||||
if sysconfig.lan_ifname then
|
||||
o = s:option(Flag, "mesh_lan", translate("Enable meshing on the LAN interface"))
|
||||
o.default = uci:get_bool("network", "mesh_lan", "auto") and o.enabled or o.disabled
|
||||
o.rmempty = false
|
||||
end
|
||||
|
||||
|
||||
function f.handle(self, state, data)
|
||||
if state == FORM_VALID then
|
||||
uci:set("network", "wan", "proto", data.ipv4)
|
||||
@ -110,6 +118,16 @@ function f.handle(self, state, data)
|
||||
|
||||
uci:set("network", "mesh_wan", "auto", data.mesh_wan)
|
||||
|
||||
if sysconfig.lan_ifname then
|
||||
uci:set("network", "mesh_lan", "auto", data.mesh_lan)
|
||||
|
||||
if data.mesh_lan == '1' then
|
||||
uci:set("network", "client", "ifname", "bat0")
|
||||
else
|
||||
uci:set("network", "client", "ifname", sysconfig.lan_ifname .. " bat0")
|
||||
end
|
||||
end
|
||||
|
||||
uci:save("network")
|
||||
uci:commit("network")
|
||||
|
||||
|
@ -19,6 +19,9 @@ msgstr "Automatisch (RA/DHCPv6)"
|
||||
msgid "Enable meshing on the WAN interface"
|
||||
msgstr "Mesh auf dem WAN-Port aktivieren"
|
||||
|
||||
msgid "Enable meshing on the LAN interface"
|
||||
msgstr "Mesh auf dem LAN-Port aktivieren"
|
||||
|
||||
msgid "Static"
|
||||
msgstr "Statisch"
|
||||
|
||||
|
@ -10,6 +10,9 @@ msgstr ""
|
||||
msgid "Enable meshing on the WAN interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable meshing on the LAN interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Static"
|
||||
msgstr ""
|
||||
|
||||
|
@ -13,3 +13,4 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do
|
||||
end
|
||||
|
||||
need_boolean('mesh_on_wan', false)
|
||||
need_boolean('mesh_on_lan', false)
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
local sysconfig = require 'gluon.sysconfig'
|
||||
local sysctl = require 'gluon.sysctl'
|
||||
local site = require 'gluon.site_config'
|
||||
local uci = require('luci.model.uci').cursor()
|
||||
|
||||
|
||||
@ -20,7 +21,7 @@ uci:commit('batman-adv')
|
||||
if not uci:get('network', 'client') then
|
||||
local ifname
|
||||
|
||||
if sysconfig.lan_ifname then
|
||||
if sysconfig.lan_ifname and not site.mesh_on_lan then
|
||||
ifname = sysconfig.lan_ifname .. ' bat0'
|
||||
else
|
||||
ifname = 'bat0'
|
||||
|
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/lua
|
||||
|
||||
local site = require 'gluon.site_config'
|
||||
local uci = require 'luci.model.uci'
|
||||
local util = require 'gluon.util'
|
||||
local sysconfig = require 'gluon.sysconfig'
|
||||
|
||||
local c = uci.cursor()
|
||||
|
||||
if sysconfig.lan_ifname then
|
||||
if not c:get('network', 'mesh_lan') then
|
||||
c:section('network', 'interface', 'mesh_lan',
|
||||
{ ifname = sysconfig.lan_ifname
|
||||
, proto = 'batadv'
|
||||
, mesh = 'bat0'
|
||||
, macaddr = util.generate_mac(1, 1)
|
||||
, auto = site.mesh_on_lan and 1 or 0
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
c:save('network')
|
||||
c:commit('network')
|
Loading…
Reference in New Issue
Block a user