X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/74c4f4ebdae8a12fc95840954dde574692234b01..381c2fa12a82948318ddcc7bc8c26b60c3b20081:/components/wifi.c?ds=sidebyside diff --git a/components/wifi.c b/components/wifi.c index 389adab..3751ae3 100644 --- a/components/wifi.c +++ b/components/wifi.c @@ -1,5 +1,4 @@ /* See LICENSE file for copyright and license details. */ -#include #include #include #include @@ -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 * @@ -110,6 +109,7 @@ { 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)); @@ -123,6 +123,12 @@ 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) { @@ -147,7 +153,7 @@ 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;