summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/rpcd-mod-luci/src/luci.c12
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;
}