luci-base: handle dhcp lease from odhcpd
Currently only the dnsmasq lease file is read for hostname hint. If someone use only odhcpd as dhcp daemon the hostname resolution on wifi_assoc list is broken. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
parent
525d62ff33
commit
bb34a31e81
1 changed files with 18 additions and 0 deletions
|
@ -190,6 +190,24 @@ local function _nethints(what, callback)
|
|||
end
|
||||
)
|
||||
|
||||
cur:foreach("dhcp", "odhcpd",
|
||||
function(s)
|
||||
if type(s.leasefile) == "string" and fs.access(s.leasefile) then
|
||||
for e in io.lines(s.leasefile) do
|
||||
duid, iaid, name, _, ip = e:match("^# %S+ (%S+) (%S+) (%S+) (-?%d+) %S+ %S+ ([0-9a-f:.]+)/[0-9]+")
|
||||
mac = net.duid_to_mac(duid)
|
||||
if mac then
|
||||
if ip and iaid == "ipv4" then
|
||||
_add(what, mac, ip, nil, name ~= "*" and name)
|
||||
elseif ip then
|
||||
_add(what, mac, nil, ip, name ~= "*" and name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
cur:foreach("dhcp", "host",
|
||||
function(s)
|
||||
for mac in luci.util.imatch(s.mac) do
|
||||
|
|
Loading…
Reference in a new issue