summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc/cbi
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2018-03-22 09:49:52 +0100
committerJo-Philipp Wich <jo@mein.io>2018-04-04 23:21:53 +0200
commit70ffbe65a0d9e8a77c9d3bafc34ddd260490c541 (patch)
tree8f44dc5d7fb0f9c5caa361e2a5af94e6da20b97d /modules/luci-base/luasrc/cbi
parent4024d4f2242a88a5e9fd18ed437b1c9fd13693f9 (diff)
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>
Diffstat (limited to 'modules/luci-base/luasrc/cbi')
-rw-r--r--modules/luci-base/luasrc/cbi/datatypes.lua4
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua
index 55cdf8a74..99113e0b7 100644
--- a/modules/luci-base/luasrc/cbi/datatypes.lua
+++ b/modules/luci-base/luasrc/cbi/datatypes.lua
@@ -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