summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorHannu Nyman <hannu.nyman@iki.fi>2017-02-28 16:22:52 +0200
committerHannu Nyman <hannu.nyman@iki.fi>2017-02-28 16:22:52 +0200
commit12f98db8ba210d5a4590f58c7298ef16275f6a08 (patch)
treec6e6c933c2fce2608f42c5ec1f84705f9903ac1f /modules
parenta100738163585ae1edc24d832ca9bef1f34beef0 (diff)
luci-base: backport cbi datatype changes
Backport the new cbi datatypes and whitespace fixes from master. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Diffstat (limited to 'modules')
-rw-r--r--modules/luci-base/luasrc/cbi/datatypes.lua31
1 files changed, 27 insertions, 4 deletions
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua
index 0a180d366..036d6ff5e 100644
--- a/modules/luci-base/luasrc/cbi/datatypes.lua
+++ b/modules/luci-base/luasrc/cbi/datatypes.lua
@@ -165,6 +165,14 @@ function ipmask6(val)
return ip6addr(ip or val)
end
+function ip6hostid(val)
+ if val and val:match("^[a-fA-F0-9:]+$") and (#val > 2) then
+ return (ip6addr("2001:db8:0:0" .. val) or ip6addr("2001:db8:0:0:" .. val))
+ end
+
+ return false
+end
+
function port(val)
val = tonumber(val)
return ( val and val >= 0 and val <= 65535 )
@@ -268,10 +276,25 @@ function wepkey(val)
end
function hexstring(val)
- if val then
- return (val:match("^[a-fA-F0-9]+$") ~= nil)
- end
- return false
+ if val then
+ return (val:match("^[a-fA-F0-9]+$") ~= nil)
+ end
+ return false
+end
+
+function hex(val, maxbytes)
+ maxbytes = tonumber(maxbytes)
+ if val and maxbytes ~= nil then
+ return ((val:match("^0x[a-fA-F0-9]+$") ~= nil) and (#val <= 2 + maxbytes * 2))
+ end
+ return false
+end
+
+function base64(val)
+ if val then
+ return (val:match("^[a-zA-Z0-9/+]+=?=?$") ~= nil) and (math.fmod(#val, 4) == 0)
+ end
+ return false
end
function string(val)