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>
cbi_validators.host.apply(this);
},
+ 'hostport': function()
+ {
+ var hp = this.split(/:/);
+
+ if (hp.length == 2)
+ return (cbi_validators.host.apply(hp[0]) &&
+ cbi_validators.port.apply(hp[1]));
+
+ return false;
+ },
+
+ 'ipaddrport': function()
+ {
+ var hp = this.split(/:/);
+
+ if (hp.length == 2)
+ return (cbi_validators.ipaddr.apply(hp[0]) &&
+ cbi_validators.port.apply(hp[1]));
+
+ return false;
+ },
+
'wpakey': function()
{
var v = this;
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)