From e0d088c76ee0639a3979ffc810867a0221a3213d Mon Sep 17 00:00:00 2001 From: Andreas Brodmann Date: Mon, 19 Nov 2007 14:50:04 +0000 Subject: /acf/dhcp: properly enable/disable dynamic hosts window and advanced window git-svn-id: svn://svn.alpinelinux.org/acf/dhcp/trunk@336 ab2d0c66-481e-0410-8bed-d214d4d58bed --- dhcp-controller.lua | 14 +++++++++++--- dhcp-editnet-html.lsp | 39 ++++++++++++++++++++++++++++++++++----- dhcp-model.lua | 23 +++++++++++++---------- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/dhcp-controller.lua b/dhcp-controller.lua index 4db9f25..d0a046f 100644 --- a/dhcp-controller.lua +++ b/dhcp-controller.lua @@ -125,9 +125,17 @@ editnet = function ( self ) if self.clientdata.cmd == "update" then tmp = self.clientdata + dynamicx = tmp.dynamichosts + advancedx = tmp.advanced + if tmp.unknownclients == "permit" then + dynamicx = tmp.dynamicx + end + if tmp.useadvanced ~= "use" then + advancedx = tmp.advancedx + end net = self.model.create_new_net( tmp.name, tmp.defleasetime, tmp.maxleasetime, tmp.gateway, tmp.domainname, tmp.dnssrv1, tmp.dnssrv2, tmp.subnet, tmp.netmask, tmp.leaserangestart, - tmp.leaserangeend, tmp.wpad, tmp.statichosts, tmp.unknownclients, tmp.dynamichosts, tmp.advanced ) + tmp.leaserangeend, tmp.wpad, tmp.statichosts, tmp.unknownclients, dynamicx, advancedx, tmp.useadvanced ) errcode, net = self.model.subnet_write( net ) return ( cfe({ option = option, value = net, errcode = errcode }) ) end @@ -150,13 +158,13 @@ createnet = function ( self ) } if self.clientdata.cmd == "new" then - net = self.model.create_new_net( "", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ) + net = self.model.create_new_net( "", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ) return ( cfe({ option = option, value = net, errcode = { msg = "", fields = nil }}) ) elseif self.clientdata.cmd == "create" then tmp = self.clientdata net = self.model.create_new_net( tmp.name, tmp.defleasetime, tmp.maxleasetime, tmp.gateway, tmp.domainname, tmp.dnssrv1, tmp.dnssrv2, tmp.subnet, - tmp.netmask, tmp.leaserangestart, tmp.leaserangeend, tmp.wpad, "", tmp.unknownclients, "", "" ) + tmp.netmask, tmp.leaserangestart, tmp.leaserangeend, tmp.wpad, "", tmp.unknownclients, "", "", "" ) errcode, net = self.model.subnet_create( net ) if #errcode.msg == 0 then self.conf.type = "redir" diff --git a/dhcp-editnet-html.lsp b/dhcp-editnet-html.lsp index 92c83c4..d2b4c75 100644 --- a/dhcp-editnet-html.lsp +++ b/dhcp-editnet-html.lsp @@ -4,6 +4,31 @@ local net = form.value local errcode = form.errcode ?> +

Basic Configuration

Subnet:

@@ -13,7 +38,7 @@ end ?> -
" method="POST"> @@ -29,7 +54,7 @@ WPAD: Lease Range Start: Lease Range End: - Unknown Clients permit\n"); @@ -61,14 +86,16 @@ Enter one host per line in the format: hostname;mac;comment
MACXX:XX:XX:XX:XX:XX - +

+ +

Subnet: Advanced Configuration

- Activate Advanced Configuration - use with caution!

+ Activate Advanced Configuration - use with caution!

+
-
" method="POST"> @@ -77,4 +104,6 @@ Enter one host per line in the format: hostname;mac;comment
+ + diff --git a/dhcp-model.lua b/dhcp-model.lua index 7361bc0..63a0533 100644 --- a/dhcp-model.lua +++ b/dhcp-model.lua @@ -325,7 +325,7 @@ end subnet_read = function( name ) local filename = cfgdir .. name .. ".subnet" - local net = create_new_net( name, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ) + local net = create_new_net( name, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ) for line in io.lines(filename) do if (string.sub(line, 1, 15) == "def-lease-time:") then @@ -478,16 +478,18 @@ subnet_write = function( net ) table.insert( fields, "statichosts" ) end - spec_msg = validate_dynamichosts( net.dynamichosts.value ) - if #spec_msg == 0 then - spec_msg = subnet_update_dynamichosts( net.name.value, net.dynamichosts.value ) - if #spec_msg > 0 then + if net.unknownclients.value == "deny" then + spec_msg = validate_dynamichosts( net.dynamichosts.value ) + if #spec_msg == 0 then + spec_msg = subnet_update_dynamichosts( net.name.value, net.dynamichosts.value ) + if #spec_msg > 0 then + msg = spec_msg + table.insert( fields, "dynamichosts" ) + end + else msg = spec_msg table.insert( fields, "dynamichosts" ) end - else - msg = spec_msg - table.insert( fields, "dynamichosts" ) end spec_msg = subnet_update_advanced( net.name.value, net.advanced.value ) @@ -776,7 +778,7 @@ get_subnets = function () return retval end -create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname, dnssrv1, dnssrv2, subnet, netmask, leaserangestart, leaserangeend, wpad, statichosts, unknownclients, dynamichosts, advanced ) +create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname, dnssrv1, dnssrv2, subnet, netmask, leaserangestart, leaserangeend, wpad, statichosts, unknownclients, dynamichosts, advanced, useadvanced ) net = { name = { label="Name", value=nonil(name), type="message" }, defleasetime = { label="Default Lease Time", value=nonil(defleasetime), type="text" }, maxleasetime = { label="Maximum Lease Time", value=nonil(maxleasetime), type="text" }, @@ -792,7 +794,8 @@ create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname statichosts = { label="Static Hosts", value=nonil(statichosts), type="text" }, dynamichosts = { label="Dynamic Hosts", value=nonil(dynamichosts), type="text" }, unknownclients = { label="Unknown Clients", value=nonil(unknownclients), type="text" }, - advanced = { label="Advanced", value=nonil(advanced), type="text" } + advanced = { label="Advanced", value=nonil(advanced), type="text" }, + useadvanced = { label="Use Advanced", value=nonil(useadvanced), type="text" } } if net.unknownclients.value ~= "permit" then net.unknownclients.value = "deny" -- cgit v1.2.3