luci-base: luci.tools.status: properly parse infinite odhcpd leases
The expiry time in an odhcpd lease file line may be -1 to denote an infinite lease time, so adjust the code to properly support that. The expiry attribute of the lease object will be set to "false" in case of an infinite lease. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
6d5f878d7c
commit
8e9e92a630
1 changed files with 4 additions and 3 deletions
|
@ -63,17 +63,18 @@ local function dhcp_leases_common(family)
|
|||
if not ln then
|
||||
break
|
||||
else
|
||||
local iface, duid, iaid, name, ts, id, length, ip = ln:match("^# (%S+) (%S+) (%S+) (%S+) (%d+) (%S+) (%S+) (.*)")
|
||||
local iface, duid, iaid, name, ts, id, length, ip = ln:match("^# (%S+) (%S+) (%S+) (%S+) (-?%d+) (%S+) (%S+) (.*)")
|
||||
local expire = tonumber(ts) or 0
|
||||
if ip and iaid ~= "ipv4" and family == 6 then
|
||||
rv[#rv+1] = {
|
||||
expires = os.difftime(tonumber(ts) or 0, os.time()),
|
||||
expires = (expire >= 0) and os.difftime(expire, os.time()),
|
||||
duid = duid,
|
||||
ip6addr = ip,
|
||||
hostname = (name ~= "-") and name
|
||||
}
|
||||
elseif ip and iaid == "ipv4" and family == 4 then
|
||||
rv[#rv+1] = {
|
||||
expires = os.difftime(tonumber(ts) or 0, os.time()),
|
||||
expires = (expire >= 0) and os.difftime(expire, os.time()),
|
||||
macaddr = duid,
|
||||
ipaddr = ip,
|
||||
hostname = (name ~= "-") and name
|
||||
|
|
Loading…
Reference in a new issue