In addition to significant internal differences in check_site_lib.lua (in
particular unifying error handling to a single place for the upcoming
multi-domain support), this changes the way fields are addressed in site
check scripts: rather than providing a string like 'next_node.ip6', the
path is passed as an array {'next_node', 'ip6'}.
Other changes in site check scripts:
* need_array and need_table now pass the full path to the sub fields to the
subcheck instead of the key and value
* Any check referring to a field inside a table implies that all higher
levels must be tables if they exist: a check for {'next_node', 'ip6'} adds
an implicit (optional) check for {'next_node'}, which allows to remove many
explicit checks for such tables
16 lines
535 B
Lua
16 lines
535 B
Lua
need_string_match(in_domain({'next_node', 'mac'}), '^%x[02468aAcCeE]:%x%x:%x%x:%x%x:%x%x:%x%x$', false)
|
|
|
|
if need_string_match(in_domain({'next_node', 'ip4'}), '^%d+.%d+.%d+.%d+$', false) then
|
|
need_string_match(in_domain({'prefix4'}), '^%d+.%d+.%d+.%d+/%d+$')
|
|
end
|
|
|
|
need_string_match(in_domain({'next_node', 'ip6'}), '^[%x:]+$', false)
|
|
|
|
|
|
for _, config in ipairs({'wifi24', 'wifi5'}) do
|
|
if need_table({config}, nil, false) then
|
|
need_string(in_domain({config, 'ap', 'ssid'}))
|
|
need_boolean({config, 'ap', 'disabled'}, false)
|
|
end
|
|
end
|