luci-base: add a strict flag to the hostname validator
Some applications, e.g. dnsmasq, do not allow hostnames starting with an underscore, therefor extend the existing hostname datatype validator with a `strict` which disallows a leading underscore. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
4024d4f224
commit
70ffbe65a0
2 changed files with 6 additions and 5 deletions
|
@ -218,12 +218,13 @@ var cbi_validators = {
|
|||
((ipv4only == 1) && cbi_validators.ip4addr.apply(this));
|
||||
},
|
||||
|
||||
'hostname': function()
|
||||
'hostname': function(strict)
|
||||
{
|
||||
if (this.length <= 253)
|
||||
return (this.match(/^[a-zA-Z0-9]+$/) != null ||
|
||||
return (this.match(/^[a-zA-Z0-9_]+$/) != null ||
|
||||
(this.match(/^[a-zA-Z0-9_][a-zA-Z0-9_\-.]*[a-zA-Z0-9]$/) &&
|
||||
this.match(/[^0-9.]/)));
|
||||
this.match(/[^0-9.]/))) &&
|
||||
(!strict || !this.match(/^_/));
|
||||
|
||||
return false;
|
||||
},
|
||||
|
|
|
@ -199,13 +199,13 @@ function macaddr(val)
|
|||
return ip.checkmac(val) and true or false
|
||||
end
|
||||
|
||||
function hostname(val)
|
||||
function hostname(val, strict)
|
||||
if val and (#val < 254) and (
|
||||
val:match("^[a-zA-Z_]+$") or
|
||||
(val:match("^[a-zA-Z0-9_][a-zA-Z0-9_%-%.]*[a-zA-Z0-9]$") and
|
||||
val:match("[^0-9%.]"))
|
||||
) then
|
||||
return true
|
||||
return (not strict or not val:match("^_"))
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue