43 lines
862 B
Lua
43 lines
862 B
Lua
local uci = require('simple-uci').cursor()
|
|
|
|
local site = require 'gluon.site'
|
|
local vpn_core = require 'gluon.mesh-vpn'
|
|
|
|
local M = {}
|
|
|
|
function M.public_key()
|
|
return nil
|
|
end
|
|
|
|
function M.enable(val)
|
|
uci:set('tunneldigger', 'mesh_vpn', 'enabled', val)
|
|
uci:save('tunneldigger')
|
|
end
|
|
|
|
function M.active()
|
|
return site.mesh_vpn.tunneldigger() ~= nil
|
|
end
|
|
|
|
function M.set_limit(ingress_limit, egress_limit)
|
|
if ingress_limit ~= nil then
|
|
uci:set('tunneldigger', 'mesh_vpn', 'limit_bw_down', ingress_limit)
|
|
else
|
|
uci:delete('tunneldigger', 'mesh_vpn', 'limit_bw_down')
|
|
end
|
|
|
|
if egress_limit ~= nil then
|
|
uci:section('simple-tc', 'interface', 'mesh_vpn', {
|
|
ifname = vpn_core.get_interface(),
|
|
enabled = true,
|
|
limit_egress = egress_limit,
|
|
})
|
|
else
|
|
uci:delete('simple-tc', 'mesh_vpn')
|
|
end
|
|
|
|
uci:save('tunneldigger')
|
|
uci:save('simple-tc')
|
|
end
|
|
|
|
return M
|