rpcd-mod-luci: handle DHCPv6 leases in dnsmasq lease file
For DHCPv6, the second entry of a lease is the IAID. The parsing code expects a MAC instead of a IAID. Reported-by: Hartmut Birr <e9hack@gmail.com> Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
cfb5af89e1
commit
dbafa93e81
1 changed files with 8 additions and 4 deletions
|
@ -435,9 +435,6 @@ lease_next(void)
|
|||
|
||||
ea = ether_aton(p);
|
||||
|
||||
if (!ea)
|
||||
continue;
|
||||
|
||||
p = strtok(NULL, " \t\n");
|
||||
|
||||
if (p && inet_pton(AF_INET6, p, &e.addr.in6))
|
||||
|
@ -447,6 +444,9 @@ lease_next(void)
|
|||
else
|
||||
continue;
|
||||
|
||||
if (!ea && e.af != AF_INET6)
|
||||
continue;
|
||||
|
||||
e.hostname = strtok(NULL, " \t\n");
|
||||
e.duid = strtok(NULL, " \t\n");
|
||||
|
||||
|
@ -459,7 +459,11 @@ lease_next(void)
|
|||
if (!strcmp(e.duid, "*"))
|
||||
e.duid = NULL;
|
||||
|
||||
e.mac = *ea;
|
||||
if (!ea && e.duid)
|
||||
ea = duid2ea(e.duid);
|
||||
|
||||
if (ea)
|
||||
e.mac = *ea;
|
||||
|
||||
return &e;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue