- odhcpd_hexlify(duidbuf, c->clid_data, c->clid_len);
-
- /* iface DUID iaid hostname lifetime assigned length [addrs...] */
- int l = snprintf(leasebuf, sizeof(leasebuf), "# %s %s %x %s %ld %x %u ",
- iface->ifname, duidbuf, ntohl(c->iaid),
- (c->hostname ? c->hostname : "-"),
- (c->valid_until > now ?
- (c->valid_until - now + wall_time) :
- (INFINITE_VALID(c->valid_until) ? -1 : 0)),
- c->assigned, (unsigned)c->length);
-
- struct in6_addr addr;
- struct odhcpd_ipaddr *addrs = (c->managed) ? c->managed : iface->ia_addr;
- size_t addrlen = (c->managed) ? (size_t)c->managed_size : iface->ia_addr_len;
- size_t m = elect_addr(addrs, addrlen);
-
- for (size_t i = 0; i < addrlen; ++i) {
- if (!valid_addr(&addrs[i], now) ||
- (!INFINITE_VALID(c->valid_until) && c->valid_until <= now))
- continue;
-
- addr = addrs[i].addr;
- if (c->length == 128) {
- if (!ADDR_ENTRY_VALID_IA_ADDR(iface, i, m, addrs))
- continue;
-
- addr.s6_addr32[3] = htonl(c->assigned);
- }
- else {
- if (!valid_prefix_length(c, addrs[i].prefix))
- continue;
-
- addr.s6_addr32[1] |= htonl(c->assigned);
- }
-
- inet_ntop(AF_INET6, &addr, ipbuf, sizeof(ipbuf) - 1);
-
- if (c->length == 128 && c->hostname) {
- fputs(ipbuf, fp);