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:
e9hack 2019-11-03 09:05:37 +01:00 committed by Jo-Philipp Wich
parent cfb5af89e1
commit dbafa93e81

View file

@ -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;
}