X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fluci-mod-admin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fdhcp.lua;h=fbde431df8df7c5a67773adbd4ef43600095130e;hp=476c9262b1ec947c9211f7f8f1f356007b6a589f;hb=fbeea4ee33c877ce7d9412d0b98920bbb42466a4;hpb=315a54b89cd9953199bf46a04c153070aae8f408
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
index 476c9262b..fbde431df 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
@@ -2,6 +2,7 @@
-- Licensed to the public under the Apache License 2.0.
local ipc = require "luci.ip"
+local sys = require "luci.sys"
local o
require "luci.util"
@@ -58,10 +59,20 @@ s:taboption("files", Flag, "nohosts",
s:taboption("files", DynamicList, "addnhosts",
translate("Additional Hosts files")).optional = true
+qu = s:taboption("advanced", Flag, "quietdhcp",
+ translate("Suppress logging"),
+ translate("Suppress logging of the routine operation of these protocols"))
+qu.optional = true
-s:taboption("advanced", Flag, "boguspriv",
+se = s:taboption("advanced", Flag, "sequential_ip",
+ translate("Allocate IP sequentially"),
+ translate("Allocate IP addresses sequentially, starting from the lowest available address"))
+se.optional = true
+
+bp = s:taboption("advanced", Flag, "boguspriv",
translate("Filter private"),
translate("Do not forward reverse lookups for local networks"))
+bp.default = bp.enabled
s:taboption("advanced", Flag, "filterwin2k",
translate("Filter useless"),
@@ -104,7 +115,7 @@ s:taboption("advanced", Flag, "nonegcache",
s:taboption("advanced", Value, "serversfile",
translate("Additional servers file"),
translate("This file may contain lines like 'server=/domain/1.2.3.4' or 'server=1.2.3.4' for"..
- "domain-specific or full upstream DNS servers."))
+ "domain-specific or full upstream DNS servers."))
s:taboption("advanced", Flag, "strictorder",
translate("Strict order"),
@@ -201,6 +212,12 @@ cq.optional = true
cq.datatype = "uinteger"
cq.placeholder = 150
+cs = s:taboption("advanced", Value, "cachesize",
+ translate("Size of DNS query cache"),
+ translate("Number of cached DNS entries (max is 10000, 0 is no caching)"))
+cs.optional = true
+cs.datatype = "range(0,10000)"
+cs.placeholder = 150
s:taboption("tftp", Flag, "enable_tftp",
translate("Enable TFTP server")).optional = true
@@ -242,7 +259,7 @@ o:depends("nonwildcard", true)
o = s:taboption("general", DynamicList, "notinterface",
translate("Exclude interfaces"),
- translate("Prevent listening on thise interfaces."))
+ translate("Prevent listening on these interfaces."))
o.optional = true
o:depends("nonwildcard", true)
@@ -253,8 +270,8 @@ s = m:section(TypedSection, "host", translate("Static Leases"),
"DHCP clients. They are also required for non-dynamic interface configurations where " ..
"only hosts with a corresponding lease are served.") .. "
" ..
translate("Use the Add Button to add a new lease entry. The MAC-Address " ..
- "indentifies the host, the IPv4-Address specifies to the fixed address to " ..
- "use and the Hostname is assigned as symbolic name to the requesting host. " ..
+ "indentifies the host, the IPv4-Address specifies the fixed address to " ..
+ "use, and the Hostname is assigned as a symbolic name to the requesting host. " ..
"The optional Lease time can be used to set non-standard host-specific " ..
"lease time, e.g. 12h, 3d or infinite."))
@@ -263,9 +280,19 @@ s.anonymous = true
s.template = "cbi/tblsection"
name = s:option(Value, "name", translate("Hostname"))
-name.datatype = "hostname"
+name.datatype = "hostname('strict')"
name.rmempty = true
+function name.write(self, section, value)
+ Value.write(self, section, value)
+ m:set(section, "dns", "1")
+end
+
+function name.remove(self, section)
+ Value.remove(self, section)
+ m:del(section, "dns")
+end
+
mac = s:option(Value, "mac", translate("MAC-Address"))
mac.datatype = "list(macaddr)"
mac.rmempty = true
@@ -274,14 +301,27 @@ ip = s:option(Value, "ip", translate("DUID"))
+duid.datatype = "and(rangelength(20,36),hexstring)"
+fp = io.open("/var/hosts/odhcpd")
+if fp then
+ for line in fp:lines() do
+ local net_val, duid_val = string.match(line, "# (%S+)%s+(%S+)")
+ if duid_val then
+ duid:value(duid_val, duid_val)
+ end
+ end
+ fp:close()
+end
hostid = s:option(Value, "hostid", translate("IPv6-Suffix (hex)"))
-ipc.neighbors({ family = 4 }, function(n)
- if n.mac and n.dest then
- ip:value(n.dest:string())
- mac:value(n.mac, "%s (%s)" %{ n.mac, n.dest:string() })
+sys.net.host_hints(function(m, v4, v6, name)
+ if m and v4 then
+ ip:value(v4)
+ mac:value(m, "%s (%s)" %{ m, name or v4 })
end
end)