diff options
author | Hannu Nyman <hannu.nyman@iki.fi> | 2017-02-15 10:56:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-15 10:56:41 +0200 |
commit | 3d4fbc9a86db55a4972c49e71096f7af0eb67421 (patch) | |
tree | ecaa59a96521bff1c0b48d9655f9351bf8aa7f92 | |
parent | 2f0e7eb5edbc1ef8d788f4e42c48713ab21a6cb0 (diff) | |
parent | 94d6b7b70d858c33ec0feabd22733c05c9fb529f (diff) |
Merge pull request #1014 from danrl/datatypes
luci-base: added datatypes `hostid` and `base64`
-rw-r--r-- | modules/luci-base/luasrc/cbi/datatypes.lua | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua index 0a180d366..62b0e0f61 100644 --- a/modules/luci-base/luasrc/cbi/datatypes.lua +++ b/modules/luci-base/luasrc/cbi/datatypes.lua @@ -1,4 +1,5 @@ -- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org> +-- Copyright 2017 Dan Luedtke <mail@danrl.com> -- Licensed to the public under the Apache License 2.0. local fs = require "nixio.fs" @@ -165,6 +166,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,17 +277,24 @@ 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 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) return true -- Everything qualifies as valid string end -function directory( val, seen ) +function directory(val, seen) local s = fs.stat(val) seen = seen or { } @@ -294,7 +310,7 @@ function directory( val, seen ) return false end -function file( val, seen ) +function file(val, seen) local s = fs.stat(val) seen = seen or { } @@ -310,7 +326,7 @@ function file( val, seen ) return false end -function device( val, seen ) +function device(val, seen) local s = fs.stat(val) seen = seen or { } @@ -445,4 +461,3 @@ function dateyyyymmdd(val) end return false end - |