summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/luasrc
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2015-12-02 11:13:18 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-12-02 11:13:39 +0100
commit9b30357454ea53a9f1d7e82d8f894db5f409de98 (patch)
tree75e5e42da3cb1ea29206c13e8f490f6dd0e04fe8 /modules/luci-base/luasrc
parentea9f25b63ee0d9a380cf74c65061c3977cad3b2f (diff)
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 <jow@openwrt.org>
Diffstat (limited to 'modules/luci-base/luasrc')
-rw-r--r--modules/luci-base/luasrc/cbi/datatypes.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua
index ebd7e594f..52f90afee 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)