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=b7b73d78d0d61efe64ff0ba9d4696f48133f8e35;hb=94ea9077076d98374a331131fb7c9fc57df370a6;hp=10636a491a307cad7903a3446d21044e75d21e9f;hpb=8c6c75f6ec5459aaa48e2985389e1954e795ffb4;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 10636a491..b7b73d78d 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" @@ -68,9 +69,10 @@ se = s:taboption("advanced", Flag, "sequential_ip", translate("Allocate IP addresses sequentially, starting from the lowest available address")) se.optional = true -s:taboption("advanced", Flag, "boguspriv", +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"), @@ -262,8 +264,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.")) @@ -272,9 +274,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 @@ -285,12 +297,25 @@ 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(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)