diff options
Diffstat (limited to 'dhcp-model.lua')
-rw-r--r-- | dhcp-model.lua | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/dhcp-model.lua b/dhcp-model.lua index 3122ee5..45ca533 100644 --- a/dhcp-model.lua +++ b/dhcp-model.lua @@ -8,6 +8,37 @@ require("validator") local subnet = { } local cfgdir = "/etc/dhcp/" +dep_check = function () + + icode = 0 + retval = {} + + lpos = require "posix" + ptr, msg, code = lpos.access("/etc/dhcp") + if ptr == nil then + table.insert(retval, "/etc/dhcp") + icode = icode + 1 + end + + ptr, msg, code = lpos.access("/usr/sbin/dhcpd") + if ptr == nil then + table.insert(retval, "/usr/sbin/dhcpd") + icode = icode + 1 + end + + ptr, msg, code = lpos.access("/etc/init.d/dhcpd") + if ptr == nil then + table.insert(retval, "/etc/init.d/dhcpd") + icode = icode + 1 + end + + if icode == 0 then + retval = nil + end + + return retval +end + subnet_read = function( name ) local filename = cfgdir .. name .. ".subnet" local net = { name = cfe({ type="message", value=name, label="Name" }), @@ -98,14 +129,18 @@ validate_network = function( net ) table.insert(fields, "name") msg = msg .. "Minimum network name length is 4 characters!\n" end --- if not validator.is_integer_in_range(_tonumber(net.defleasetime.value), 1800, 86400) then --- table.insert(fields, "defleasetime") --- msg = msg .. "Default-Lease-Time must be: 1800 < x < 86400\n" --- end --- if not validator.is_integer_in_range(_tonumber(net.maxleasetime.value), 1800, 86400) then --- table.insert(fields, "maxleasetime") --- msg = msg .. "Maximum-Lease-Time must be: 1800 < x < 86400\n" --- end + if net.name.value == "<new>" then + table.insert(fields, "name") + msg = msg .. "<new> is not a valid network name!\n" + end + if not validator.is_integer_in_range(_tonumber(net.defleasetime.value), 1800, 86400) then + table.insert(fields, "defleasetime") + msg = msg .. "Default-Lease-Time must be: 1800 < x < 86400\n" + end + if not validator.is_integer_in_range(_tonumber(net.maxleasetime.value), 1800, 86400) then + table.insert(fields, "maxleasetime") + msg = msg .. "Maximum-Lease-Time must be: 1800 < x < 86400\n" + end if not validator.is_ipv4(net.gateway.value) then table.insert(fields, "gateway") msg = msg .. "Gateway: invalid IPv4 address!\n" @@ -207,7 +242,7 @@ service_control = function ( command ) local line = "" local file = io.popen( "/etc/init.d/dhcpd " .. command ) if file ~= nil then - line = file:read( "*l" ) + line = file:read( "*a" ) while line ~= nil do retval = retval .. "\n" .. line line = file:read( "*l" ) |