Changed addr to print "No Address" when there is no address
authorKevin Lyles <iqgryn@users.sourceforge.net>
Thu, 19 Jun 2008 19:54:31 +0000 (19:54 +0000)
committerKevin Lyles <iqgryn@users.sourceforge.net>
Thu, 19 Jun 2008 19:54:31 +0000 (19:54 +0000)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1167 7f574dfc-610e-0410-a909-a81674777703

doc/variables.xml
src/conky.c

index 224d566..ac786dd 100644 (file)
@@ -5,7 +5,7 @@
                        <option>interface</option>
                </term>
                <listitem>
-                       IP address for an interface
+                       IP address for an interface, or "No Address" if no address is assigned.
                        <para></para></listitem>
        </varlistentry>
 
index 2bd6b42..e31e304 100644 (file)
@@ -4718,11 +4718,18 @@ static void generate_text_internal(char *p, int p_max_size,
                        }
 #ifdef HAVE_POPEN
                        OBJ(addr) {
-                               snprintf(p, p_max_size, "%u.%u.%u.%u",
-                                       obj->data.net->addr.sa_data[2] & 255,
-                                       obj->data.net->addr.sa_data[3] & 255,
-                                       obj->data.net->addr.sa_data[4] & 255,
-                                       obj->data.net->addr.sa_data[5] & 255);
+                               if ((obj->data.net->addr.sa_data[2] & 255) == 0
+                                               && (obj->data.net->addr.sa_data[3] & 255) == 0
+                                               && (obj->data.net->addr.sa_data[4] & 255) == 0
+                                               && (obj->data.net->addr.sa_data[5] & 255) == 0) {
+                                       snprintf(p, p_max_size, "No Address");
+                               } else {
+                                       snprintf(p, p_max_size, "%u.%u.%u.%u",
+                                               obj->data.net->addr.sa_data[2] & 255,
+                                               obj->data.net->addr.sa_data[3] & 255,
+                                               obj->data.net->addr.sa_data[4] & 255,
+                                               obj->data.net->addr.sa_data[5] & 255);
+                               }
                        }
 #if defined(__linux__)
                        OBJ(addrs) {