Xinqi Bao's Git

fmt_human: Improve types
[slstatus.git] / components / wifi.c
index 389adab..3751ae3 100644 (file)
@@ -1,5 +1,4 @@
 /* See LICENSE file for copyright and license details. */
-#include <errno.h>
 #include <ifaddrs.h>
 #include <stdio.h>
 #include <string.h>
@@ -60,7 +59,7 @@
                sscanf(datastart + 1, " %*d   %d  %*d  %*d\t\t  %*d\t   "
                       "%*d\t\t%*d\t\t %*d\t  %*d\t\t %*d", &cur);
 
-               return bprintf("%d%%", (int)((float)cur / total * 100));
+               return bprintf("%d", (int)((float)cur / total * 100));
        }
 
        const char *
        {
                struct ieee80211_bssid bssid;
                int sockfd;
+               uint8_t zero_bssid[IEEE80211_ADDR_LEN];
 
                memset(&bssid, 0, sizeof(bssid));
                memset(nr, 0, sizeof(struct ieee80211_nodereq));
                        close(sockfd);
                        return 0;
                }
+               memset(&zero_bssid, 0, sizeof(zero_bssid));
+               if (memcmp(bssid.i_bssid, zero_bssid,
+                   IEEE80211_ADDR_LEN) == 0) {
+                       close(sockfd);
+                       return 0;
+               }
                strlcpy(nr->nr_ifname, iface, sizeof(nr->nr_ifname));
                memcpy(&nr->nr_macaddr, bssid.i_bssid, sizeof(nr->nr_macaddr));
                if ((ioctl(sockfd, SIOCG80211NODE, nr)) < 0 && nr->nr_rssi) {
                                q = nr.nr_rssi >= -50 ? 100 : (nr.nr_rssi <= -100 ? 0 :
                                (2 * (nr.nr_rssi + 100)));
                        }
-                       return bprintf("%d%%", q);
+                       return bprintf("%d", q);
                }
 
                return NULL;