]> git.sur5r.net Git - i3/i3status/commitdiff
i3status - Handle down wireless interfaces just like ethernet interfaces (e.g. colors)
authorJasper Lievisse Adriaanse <jasper@openbsd.org>
Wed, 10 Oct 2012 07:52:27 +0000 (09:52 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 16 Oct 2012 08:48:29 +0000 (10:48 +0200)
src/print_wireless_info.c

index b5e7ba26e9d6a9ecc63fc8c1fd2d25707b8f0baf..1eddd968f49e63776125ead27d2617e97bbf7df5 100644 (file)
@@ -305,6 +305,15 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
 
         INSTANCE(interface);
 
+       const char *ip_address = get_ip_addr(interface);
+       if (ip_address == NULL) {
+               START_COLOR("color_bad");
+               outwalk += sprintf(outwalk, "%s", format_down);
+               goto out;
+       } else {
+               START_COLOR("color_good");
+       }
+
         if (get_wireless_info(interface, &info)) {
                 walk = format_up;
                 if (info.flags & WIRELESS_INFO_FLAG_HAS_QUALITY)
@@ -366,9 +375,8 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
                 }
 
                 if (BEGINS_WITH(walk+1, "ip")) {
-                        const char *ip_address = get_ip_addr(interface);
-                        outwalk += sprintf(outwalk, "%s", (ip_address ? ip_address : "no IP"));
-                        walk += strlen("ip");
+                       outwalk += sprintf(outwalk, "%s", ip_address);
+                       walk += strlen("ip");
                 }
 
 #ifdef LINUX
@@ -383,6 +391,7 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
 #endif
         }
 
+out:
         END_COLOR;
         OUTPUT_FULL_TEXT(buffer);
 }