Return actual percentage for wifi_perc() Implement basic percentage calculation for wifi_perc. With this commit, the function returns correct percentage, since the max of what /proc/net/wireless returns is 70.
parazyd parazyd@dyne.org
Tue, 24 Oct 2017 11:03:17 +0200
1 files changed,
7 insertions(+),
3 deletions(-)
jump to
M
components/wifi.c
→
components/wifi.c
@@ -14,7 +14,9 @@
const char * wifi_perc(const char *iface) { - int i, perc; + int i, cur; + float perc; + int total = 70; /* the max of /proc/net/wireless */ char *p, *datastart; char path[PATH_MAX]; char status[5];@@ -50,9 +52,11 @@ if ((datastart = strstr(buf, iface)) == NULL)
return NULL; datastart = (datastart+(strlen(iface)+1)); - sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &perc); + sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &cur); - return bprintf("%d", perc); + perc = (float)cur / total * 100.0; + + return bprintf("%.0f", perc); } const char *