- buf_len += snprintf(&buf[buf_len], 32, "/%hhu,%u,%u ",
- p->prefix, ntohl(p->preferred),
- ntohl(p->valid));
+ if (!host) {
+ buf_len += snprintf(&buf[buf_len], 6, "/%hhu", e[i].length);
+ if (route) {
+ buf[buf_len++] = ',';
+ if (!IN6_IS_ADDR_UNSPECIFIED(&e[i].router)) {
+ inet_ntop(AF_INET6, &e[i].router, &buf[buf_len], INET6_ADDRSTRLEN);
+ buf_len += strlen(&buf[buf_len]);
+ }
+ buf_len += snprintf(&buf[buf_len], 24, ",%u", e[i].valid);
+ buf_len += snprintf(&buf[buf_len], 12, ",%u", e[i].priority);
+ } else {
+ buf_len += snprintf(&buf[buf_len], 24, ",%u,%u", e[i].preferred, e[i].valid);
+ if (e[i].prefix_class)
+ buf_len += snprintf(&buf[buf_len], 12, ",%u", e[i].prefix_class);
+ }
+ }
+ buf[buf_len++] = ' ';