gluon-{,web-}mesh-vpn-fastd: add support for null@l2tp method
THe "null" and "null@l2tp" methods are considered equivalent and always added and removed together when the method list is "configurable". "null@l2tp" is added before "null", so it is preferred when the peer supports both.
This commit is contained in:
parent
487d312d25
commit
15eeb86f42
@ -1,4 +1,4 @@
|
|||||||
local fastd_methods = {'salsa2012+umac', 'null+salsa2012+umac', 'null'}
|
local fastd_methods = {'salsa2012+umac', 'null+salsa2012+umac', 'null@l2tp', 'null'}
|
||||||
need_array_of({'mesh_vpn', 'fastd', 'methods'}, fastd_methods)
|
need_array_of({'mesh_vpn', 'fastd', 'methods'}, fastd_methods)
|
||||||
need_boolean(in_site({'mesh_vpn', 'fastd', 'configurable'}), false)
|
need_boolean(in_site({'mesh_vpn', 'fastd', 'configurable'}), false)
|
||||||
|
|
||||||
|
@ -17,20 +17,22 @@ end
|
|||||||
local methods
|
local methods
|
||||||
|
|
||||||
if site.mesh_vpn.fastd.configurable(false) then
|
if site.mesh_vpn.fastd.configurable(false) then
|
||||||
local has_null = util.contains(site.mesh_vpn.fastd.methods(), 'null')
|
local site_methods = site.mesh_vpn.fastd.methods()
|
||||||
|
local has_null = util.contains(site_methods, 'null@l2tp') or util.contains(site_methods, 'null')
|
||||||
|
|
||||||
local old_methods = uci:get('fastd', 'mesh_vpn', 'method')
|
local old_methods = uci:get('fastd', 'mesh_vpn', 'method')
|
||||||
if old_methods then
|
if old_methods then
|
||||||
has_null = util.contains(old_methods, 'null')
|
has_null = util.contains(old_methods, 'null@l2tp') or util.contains(old_methods, 'null')
|
||||||
end
|
end
|
||||||
|
|
||||||
methods = {}
|
methods = {}
|
||||||
if has_null then
|
if has_null then
|
||||||
|
table.insert(methods, 'null@l2tp')
|
||||||
table.insert(methods, 'null')
|
table.insert(methods, 'null')
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, method in ipairs(site.mesh_vpn.fastd.methods()) do
|
for _, method in ipairs(site_methods) do
|
||||||
if method ~= 'null' then
|
if method ~= 'null@l2tp' and method ~= 'null' then
|
||||||
table.insert(methods, method)
|
table.insert(methods, method)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -10,7 +10,7 @@ mode.package = "gluon-web-mesh-vpn-fastd"
|
|||||||
mode.template = "mesh-vpn-fastd"
|
mode.template = "mesh-vpn-fastd"
|
||||||
|
|
||||||
local methods = uci:get('fastd', 'mesh_vpn', 'method')
|
local methods = uci:get('fastd', 'mesh_vpn', 'method')
|
||||||
if util.contains(methods, 'null') then
|
if util.contains(methods, 'null@l2tp') or util.contains(methods, 'null') then
|
||||||
-- performance mode will only be used as default, if it is present in site.mesh_vpn.fastd.methods
|
-- performance mode will only be used as default, if it is present in site.mesh_vpn.fastd.methods
|
||||||
mode.default = 'performance'
|
mode.default = 'performance'
|
||||||
else
|
else
|
||||||
@ -24,11 +24,12 @@ function mode:write(data)
|
|||||||
-- if performance mode was selected, and the method 'null' was not present in the original table, it will be added
|
-- if performance mode was selected, and the method 'null' was not present in the original table, it will be added
|
||||||
local site_methods = {}
|
local site_methods = {}
|
||||||
if data == 'performance' then
|
if data == 'performance' then
|
||||||
|
table.insert(site_methods, 'null@l2tp')
|
||||||
table.insert(site_methods, 'null')
|
table.insert(site_methods, 'null')
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, method in ipairs(site.mesh_vpn.fastd.methods()) do
|
for _, method in ipairs(site.mesh_vpn.fastd.methods()) do
|
||||||
if method ~= 'null' then
|
if method ~= 'null@l2tp' and method ~= 'null' then
|
||||||
table.insert(site_methods, method)
|
table.insert(site_methods, method)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user