diff options
author | Ted Trask <ttrask01@yahoo.com> | 2009-12-31 14:27:23 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2009-12-31 14:27:23 +0000 |
commit | 9f469a06780e66135cb3da9cfdedb48763931160 (patch) | |
tree | ddcb6f2375c81e90f276f31aa880b2654092603d /lib/validator.lua | |
parent | be4063286a0b8f46754c082178517b3c684c3dff (diff) | |
download | acf-core-9f469a06780e66135cb3da9cfdedb48763931160.tar.bz2 acf-core-9f469a06780e66135cb3da9cfdedb48763931160.tar.xz |
Moved non-ACF-specific libraries to acf-lib package, moved cfe_unpack function to viewfunctions library.
Diffstat (limited to 'lib/validator.lua')
-rw-r--r-- | lib/validator.lua | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/lib/validator.lua b/lib/validator.lua deleted file mode 100644 index ca8ed41..0000000 --- a/lib/validator.lua +++ /dev/null @@ -1,172 +0,0 @@ --------------------------------------------------- --- Validation Functions for Alpine Linux' Webconf --------------------------------------------------- -module (..., package.seeall) - -function is_string ( str ) - return (type(str) == "string") -end - -function is_boolean ( str ) - return (type(str) == "boolean") -end - -function is_number ( str ) - return (type(str) == "number") -end - --- --- This function validates an ipv4 address. --- -function is_ipv4(ipv4) - local retval = false; - local nums = {}; - local iplen = string.len(ipv4); - - -- check the ipv4's length - if (iplen < 7 or iplen > 15) then - return false, "Invalid Length" - end - - -- NC: Split the string into an array. separate with '.' (dots) - -- ^ beginning of string - -- () capture - -- %. litteral '.' The % neutralizes the . character class. - -- %d+ one or more digits - -- $ end of string - nums = {ipv4:match ("^(%d+)%.(%d+)%.(%d+)%.(%d+)$")} - - -- check if all nums are filled - if ( nums[1] == nil or - nums[2] == nil or - nums[3] == nil or - nums[4] == nil) then - -- we have an empty number - return false, "Invalid Format" - end - - -- too big? - if (tonumber(nums[1]) > 255 or - tonumber(nums[2]) > 255 or - tonumber(nums[3]) > 255 or - tonumber(nums[4]) > 255) then - -- at least one number is too big - return false, "Invalid Value" - end - - return true -end - --- --- This function validates a partial ipv4 address. --- -function is_partial_ipv4(ipv4) - local retval = false; - local nums = {}; - - -- Check to see if any invalid characters - if not ipv4 or not ipv4:match("^[%d%.]+$") then - return false, "Invalid Format" - end - - -- NC: Split the string into an array. separate with '.' (dots) - -- %d+ one or more digits - for num in ipv4:gmatch("%d+") do - nums[#nums+1] = num - -- too big? - if tonumber(num) > 255 then - return false, "Invalid Format" - end - end - - -- too many numbers - if #nums > 4 then - return false, "Invalid Format" - end - - return true -end - -function is_mac(mac) - - local tmpmac = string.upper(mac) - - if (string.len(tmpmac) ~= 17) then - return false, "Invalid Length" - end - - -- check for valid characters - local step = 1; - while (step <= 17) do - if (string.sub(tmpmac, step, step) ~= ":") and - (string.sub(tmpmac, step, step) < "0" or string.sub(tmpmac, step, step) > "9") and - (string.sub(tmpmac, step, step) < "A" or string.sub(tmpmac, step, step) > "F") then - -- we have found an invalid character! - return false, "Invalid Chars" - end - step = step + 1; - end - - -- check for valid colon positions - if (string.sub(tmpmac, 3, 3) ~= ":" or - string.sub(tmpmac, 6, 6) ~= ":" or - string.sub(tmpmac, 9, 9) ~= ":" or - string.sub(tmpmac, 12, 12) ~= ":" or - string.sub(tmpmac, 15, 15) ~= ":") then - return false, "Invalid Format" - end - - -- check for valid non colon positions - step = 1; - while (step <= 17) do - if ((string.sub(tmpmac, step, step) == ":") and - ((step ~= 3) and (step ~= 6) and (step ~= 9) and (step ~= 12) and - (step ~= 15))) then - return false, "Invalid Value" - end - step = step + 1; - end - - return true -end - --- --- This function checks if the given input --- consists of number-chars between 0..9 only --- and eventually a leading '-' --- -function is_integer(numstr) - -- ^ beginning of string - -- -? one or zero of the char '-' - -- %d+ one or more digits - -- $ end of string - return string.find(numstr, "^-?%d+$") ~= nil -end - - --- --- This function checks if the given input --- consists of number-chars between 0..9 only --- and if it is within a given range. --- -function is_integer_in_range(numstr, min, max) - return is_integer(numstr) - and tonumber(numstr) >= min - and tonumber(numstr) <= max - -end - --- --- This function checks if the given number is an integer --- and wheter it is between 1 .. 65535 --- -function is_port(numstr) - return is_integer_in_range(numstr, 1, 65535) -end - -function is_valid_filename ( path, restriction ) - if not (path) or ((restriction) and (string.find (path, "^" .. format.escapemagiccharacters(restriction) ) == nil or string.find (path, "/", #restriction+2) )) then - return false - end - return true -end |