X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/80fc20d1d69b14f36ad9bb64d8af38481cbf1ff5..062f33f8742c645a3b436f609a19219106a8af75:/components/wifi.c diff --git a/components/wifi.c b/components/wifi.c index 591f6ad..389adab 100644 --- a/components/wifi.c +++ b/components/wifi.c @@ -23,8 +23,11 @@ char status[5]; FILE *fp; - snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface, - "/operstate"); + if (esnprintf(path, sizeof(path), + "/sys/class/net/%s/operstate", + iface) < 0) { + return NULL; + } if (!(fp = fopen(path, "r"))) { warn("fopen '%s':", path); return NULL; @@ -57,7 +60,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 * @@ -69,7 +72,10 @@ memset(&wreq, 0, sizeof(struct iwreq)); wreq.u.essid.length = IW_ESSID_MAX_SIZE+1; - snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface); + if (esnprintf(wreq.ifr_name, sizeof(wreq.ifr_name), + "%s", iface) < 0) { + return NULL; + } if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); @@ -141,7 +147,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;