From 1d102c4c33c28f3ff6644060511930e8dbd768b0 Mon Sep 17 00:00:00 2001 From: Andreas Brodmann Date: Thu, 8 Nov 2007 23:08:21 +0000 Subject: updated /acf/dhcp - subnets are now dynamically looked up git-svn-id: svn://svn.alpinelinux.org/acf/dhcp@277 ab2d0c66-481e-0410-8bed-d214d4d58bed --- dhcp-controller.lua | 40 ++++++++++++++++++++++------------------ dhcp-editnet-html.lsp | 14 +++++++++++++- dhcp-home-html.lsp | 36 +++++++++++++++++++----------------- dhcp-model.lua | 17 ++++++++++++++++- 4 files changed, 70 insertions(+), 37 deletions(-) diff --git a/dhcp-controller.lua b/dhcp-controller.lua index c0be37d..8811e86 100644 --- a/dhcp-controller.lua +++ b/dhcp-controller.lua @@ -35,6 +35,10 @@ end editnet = function ( self ) + if not self.clientdata.cmd then + list_redir(self) + end + local net = {} local option = { script = ENV["SCRIPT_NAME"], prefix = self.conf.prefix, @@ -49,24 +53,23 @@ editnet = function ( self ) end end - if self.clientdata.cmd then - if self.clientdata.cmd == "Update" then - net = { name = { label="Name", value=self.model.nonil(self.clientdata.name), type="message" }, - defleasetime = { label="Default Lease Time", value=self.model.nonil(self.clientdata.defleasetime), type="text" }, - maxleasetime = { label="Maximum Lease Time", value=self.model.nonil(self.clientdata.maxleasetime), type="text" }, - gateway = { label="Gateway", value=self.model.nonil(self.clientdata.gateway), type="text" }, - domainname = { label="Domainname", value=self.model.nonil(self.clientdata.domainname), type="text" }, - dnssrv1 = { label="DNS Server 1", value=self.model.nonil(self.clientdata.dnssrv1), type="text" }, - dnssrv2 = { label="DNS Server 2", value=self.model.nonil(self.clientdata.dnssrv2), type="text" }, - subnet = { label="Subnet", value=self.model.nonil(self.clientdata.subnet), type="text" }, - netmask = { label="Netmask", value=self.model.nonil(self.clientdata.netmask), type="text" }, - leaserangestart = { label="Lease Range Start", value=self.model.nonil(self.clientdata.leaserangestart), type="text" }, - leaserangeend = { label="Lease Range End", value=self.model.nonil(self.clientdata.leaserangeend), type="text" }, - wpad = { label="Web Proxy Auto Discovery", value=self.model.nonil(self.clientdata.wpad), type="text" } - } - self.model.subnet_write( net ) - return ( cfe({ option = option, value = net, error = { value = nil, fields = nil }}) ) - end + if self.clientdata.cmd == "Update" then + net = { name = { label="Name", value=self.model.nonil(self.clientdata.name), type="message" }, + defleasetime = { label="Default Lease Time", value=self.model.nonil(self.clientdata.defleasetime), type="text" }, + maxleasetime = { label="Maximum Lease Time", value=self.model.nonil(self.clientdata.maxleasetime), type="text" }, + gateway = { label="Gateway", value=self.model.nonil(self.clientdata.gateway), type="text" }, + domainname = { label="Domainname", value=self.model.nonil(self.clientdata.domainname), type="text" }, + dnssrv1 = { label="DNS Server 1", value=self.model.nonil(self.clientdata.dnssrv1), type="text" }, + dnssrv2 = { label="DNS Server 2", value=self.model.nonil(self.clientdata.dnssrv2), type="text" }, + subnet = { label="Subnet", value=self.model.nonil(self.clientdata.subnet), type="text" }, + netmask = { label="Netmask", value=self.model.nonil(self.clientdata.netmask), type="text" }, + leaserangestart = { label="Lease Range Start", value=self.model.nonil(self.clientdata.leaserangestart), type="text" }, + leaserangeend = { label="Lease Range End", value=self.model.nonil(self.clientdata.leaserangeend), type="text" }, + wpad = { label="Web Proxy Auto Discovery", value=self.model.nonil(self.clientdata.wpad), + type="select", option = { "yes", "no"} } + } + self.model.subnet_write( net ) + return ( cfe({ option = option, value = net, error = { value = nil, fields = nil }}) ) end net = self.model.subnet_read( self.clientdata.network ); @@ -90,6 +93,7 @@ home = function ( self ) if self.model.is_running( "dhcpd" ) then info.status.value = "running" end + info.subnets = self.model.get_subnets() return ( cfe({ option = option, value = "", info = info }) ) end diff --git a/dhcp-editnet-html.lsp b/dhcp-editnet-html.lsp index 296d614..8330c31 100644 --- a/dhcp-editnet-html.lsp +++ b/dhcp-editnet-html.lsp @@ -18,6 +18,18 @@ Default Lease Time: Maximum Lease Time: Domain Name: - WPAD: + WPAD: + +
method="POST">
diff --git a/dhcp-home-html.lsp b/dhcp-home-html.lsp index 25757ee..a631233 100644 --- a/dhcp-home-html.lsp +++ b/dhcp-home-html.lsp @@ -25,11 +25,19 @@
-

DHCPd - View Files

+

DHCPd - Edit Subnet

-" method="POST"> - - +" method="POST"> + +
Network to modify +

@@ -43,19 +51,13 @@ -

+
-

DHCPd - Edit Subnet

+

DHCPd - View Files

-" method="POST"> - - +" method="POST"> + + -
Network to modify -
+
+ diff --git a/dhcp-model.lua b/dhcp-model.lua index 2a952f7..4fca1a9 100644 --- a/dhcp-model.lua +++ b/dhcp-model.lua @@ -2,6 +2,8 @@ -- Copyright(c) 2007 A. Brodmann - Licensed under terms of GPL2 module (..., package.seeall) +require("lfs") + local subnet = { } local cfgdir = "/etc/dhcp/" @@ -18,7 +20,7 @@ subnet_read = function( name ) netmask = cfe({ label="Netmask" }), leaserangestart = cfe({ label="Lease Range Start" }), leaserangeend = cfe({ label="Lease Range End" }), - wpad = cfe({ label="Web Proxy Auto Discovery" }) + wpad = cfe({ label="Web Proxy Auto Discovery", type="select", option = { "yes", "no" } }) } for line in io.lines(filename) do @@ -139,4 +141,17 @@ function nonil( value ) return retval end + +get_subnets = function () + + local retval = retval or {} + + for sn in lfs.dir( cfgdir ) do + if string.sub(sn, -7) == ".subnet" then + table.insert(retval, string.sub(sn, 1, -8)) + end + end + + return retval +end -- cgit v1.2.3