From 9b30357454ea53a9f1d7e82d8f894db5f409de98 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 2 Dec 2015 11:13:18 +0100 Subject: luci-base: add hostport and ipaddrport validation types Add two new types 'hostport' and 'ipaddrport' to validate strings in the form 'sub.example.org:1234' and '0.0.0.0:80'. The 'hostport' accepts hostnames or IP addresses followed by a colon and a port number while the 'ipaddrport' type accepts numeric IP addresses only, followed by a colon and a port. Signed-off-by: Jo-Philipp Wich --- modules/luci-base/luasrc/cbi/datatypes.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'modules/luci-base/luasrc/cbi') diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua index ebd7e594f7..52f90afee6 100644 --- a/modules/luci-base/luasrc/cbi/datatypes.lua +++ b/modules/luci-base/luasrc/cbi/datatypes.lua @@ -184,6 +184,16 @@ function network(val) return uciname(val) or host(val) end +function hostport(val) + local h, p = val:match("^([^:]+):([^:]+)$") + return not not (h and p and host(h) and port(p)) +end + +function ipaddrport(val) + local h, p = val:match("^([^:]+):([^:]+)$") + return not not (h and p and ipaddr(h) and port(p)) +end + function wpakey(val) if #val == 64 then return (val:match("^[a-fA-F0-9]+$") ~= nil) -- cgit v1.2.3