From: Michael Stapelberg Date: Wed, 21 Jul 2010 09:01:37 +0000 (+0200) Subject: Bugfix: Correctly check for interface up/down-status (Thanks docsteel) X-Git-Tag: 2.2~13 X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3status;a=commitdiff_plain;h=fac05bf4e8368ddf8fa43f97d199c7a486441d1d Bugfix: Correctly check for interface up/down-status (Thanks docsteel) --- diff --git a/src/print_ip_addr.c b/src/print_ip_addr.c index e719d2f..1c2839d 100644 --- a/src/print_ip_addr.c +++ b/src/print_ip_addr.c @@ -22,6 +22,7 @@ const char *get_ip_addr(const char *interface) { memset(part, 0, sizeof(part)); struct ifaddrs *ifaddr, *addrp; + bool found = false; getifaddrs(&ifaddr); @@ -40,8 +41,10 @@ const char *get_ip_addr(const char *interface) { addrp = addrp->ifa_next) { /* Check if the interface is down */ - if (strcmp(addrp->ifa_name, interface) == 0 && - (addrp->ifa_flags & IFF_RUNNING) == 0) { + if (strcmp(addrp->ifa_name, interface) != 0) + continue; + found = true; + if ((addrp->ifa_flags & IFF_RUNNING) == 0) { freeifaddrs(ifaddr); return NULL; } @@ -49,7 +52,7 @@ const char *get_ip_addr(const char *interface) { if (addrp == NULL) { freeifaddrs(ifaddr); - return "no IP"; + return (found ? "no IP" : NULL); } int ret;