-
- for (walk = format; *walk != '\0'; walk++) {
- if (*walk != '%') {
- putchar(*walk);
- continue;
- }
-
- if (strncmp(walk+1, "ip", strlen("ip")) == 0) {
- print_ipv6_addr();
- walk += strlen("ip");
+ char * addr_string = get_ipv6_addr();
+
+ if (addr_string == NULL) {
+ printf("%s", format_down);
+ } else {
+ for (walk = format_up; *walk != '\0'; walk++) {
+ if (*walk != '%') {
+ putchar(*walk);
+ continue;
+ }
+
+ if (strncmp(walk+1, "ip", strlen("ip")) == 0) {
+ printf("%s", addr_string);
+ walk += strlen("ip");
+ }