diff --git a/doc/variables.xml b/doc/variables.xml
index 224d5669..ac786dd4 100644
--- a/doc/variables.xml
+++ b/doc/variables.xml
@@ -5,7 +5,7 @@
- IP address for an interface
+ IP address for an interface, or "No Address" if no address is assigned.
diff --git a/src/conky.c b/src/conky.c
index 2bd6b426..e31e3040 100644
--- a/src/conky.c
+++ b/src/conky.c
@@ -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) {