summaryrefslogtreecommitdiffstats
path: root/dhcp-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dhcp-model.lua')
-rw-r--r--dhcp-model.lua53
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 .. "&lt;new&gt; 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" )