X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fluci-mod-admin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fdhcp.lua;h=0c01ceffca24358c9dc7f578740914ec1177e7ea;hb=dbb694c699f80f387c61d531cb3e8de2608edbec;hp=7bbc28c168f7e5c6c3a25e8edf877ce75c4a41a4;hpb=16bdbe235342516fb85f1af42d7594056ad0e3d7;p=project%2Fluci.git
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 7bbc28c16..0c01ceffc 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
@@ -58,10 +58,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"),
@@ -148,6 +158,7 @@ rl:depends("rebind_protection", "1")
rd = s:taboption("general", DynamicList, "rebind_domain",
translate("Domain whitelist"),
translate("List of domains to allow RFC1918 responses for"))
+rd.optional = true
rd:depends("rebind_protection", "1")
rd.datatype = "host(1)"
@@ -221,6 +232,29 @@ db.optional = true
db:depends("enable_tftp", "1")
db.placeholder = "pxelinux.0"
+o = s:taboption("general", Flag, "localservice",
+ translate("Local Service Only"),
+ translate("Limit DNS service to subnets interfaces on which we are serving DNS."))
+o.optional = false
+o.rmempty = false
+
+o = s:taboption("general", Flag, "nonwildcard",
+ translate("Non-wildcard"),
+ translate("Bind only to specific interfaces rather than wildcard address."))
+o.optional = false
+o.rmempty = false
+
+o = s:taboption("general", DynamicList, "interface",
+ translate("Listen Interfaces"),
+ translate("Limit listening to these interfaces, and loopback."))
+o.optional = true
+o:depends("nonwildcard", true)
+
+o = s:taboption("general", DynamicList, "notinterface",
+ translate("Exclude interfaces"),
+ translate("Prevent listening on these interfaces."))
+o.optional = true
+o:depends("nonwildcard", true)
m:section(SimpleSection).template = "admin_network/lease_status"
@@ -242,6 +276,16 @@ name = s:option(Value, "name", translate("Hostname"))
name.datatype = "hostname"
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
@@ -252,6 +296,19 @@ ip.datatype = "or(ip4addr,'ignore')"
time = s:option(Value, "leasetime", translate("Lease time"))
time.rmempty = true
+duid = s:option(Value, "duid", translate("DUID"))
+duid.datatype = "and(rangelength(28,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)