When a Gluon node is used to connect to an uplink router/DHCP server (for example in deployments without VPN tunnels), the gw_mode must be set to server; this should be preserved on upgrades. Fixes #1196
51 lines
1.2 KiB
Lua
Executable File
51 lines
1.2 KiB
Lua
Executable File
#!/usr/bin/lua
|
|
|
|
local sysconfig = require 'gluon.sysconfig'
|
|
local site = require 'gluon.site_config'
|
|
local util = require 'gluon.util'
|
|
|
|
local uci = require('simple-uci').cursor()
|
|
|
|
|
|
local gw_mode, gw_sel_class, routing_algo
|
|
|
|
gw_mode = uci:get('batman-adv', 'bat0', 'gw_mode') or 'client'
|
|
|
|
if site.mesh and site.mesh.batman_adv then
|
|
gw_sel_class = site.mesh.batman_adv.gw_sel_class
|
|
routing_algo = site.mesh.batman_adv.routing_algo
|
|
end
|
|
|
|
|
|
uci:delete('batman-adv', 'bat0')
|
|
uci:section('batman-adv', 'mesh', 'bat0', {
|
|
orig_interval = 5000,
|
|
gw_mode = gw_mode,
|
|
gw_sel_class = gw_sel_class,
|
|
hop_penalty = 15,
|
|
routing_algo = routing_algo,
|
|
multicast_mode = false,
|
|
})
|
|
uci:save('batman-adv')
|
|
|
|
uci:delete('network', 'gluon_bat0')
|
|
uci:section('network', 'interface', 'gluon_bat0', {
|
|
proto = 'gluon_bat0',
|
|
})
|
|
|
|
uci:delete('network', 'bat0')
|
|
uci:section('network', 'interface', 'bat0', {
|
|
ifname = 'bat0',
|
|
proto = 'none',
|
|
auto = true,
|
|
macaddr = sysconfig.primary_mac,
|
|
multicast_router = 2,
|
|
learning = true,
|
|
})
|
|
|
|
local interfaces = uci:get_list('network', 'client', 'ifname')
|
|
util.add_to_set(interfaces, 'bat0')
|
|
uci:set_list('network', 'client', 'ifname', interfaces)
|
|
|
|
uci:save('network')
|