diff options
-rw-r--r-- | libs/rpcd-mod-luci/src/luci.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/rpcd-mod-luci/src/luci.c b/libs/rpcd-mod-luci/src/luci.c index 245ca636be..91f6798d79 100644 --- a/libs/rpcd-mod-luci/src/luci.c +++ b/libs/rpcd-mod-luci/src/luci.c @@ -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; } |