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
 |