summaryrefslogtreecommitdiff
path: root/components/wifi.c
diff options
context:
space:
mode:
authorparazyd <parazyd@dyne.org>2017-10-24 11:03:17 +0200
committerAaron Marcher <me@drkhsh.at>2017-10-24 11:16:54 +0200
commitd2988c72e3e77e188fda0176ce4969322e69fae9 (patch)
treecc52e57f10c40e18a560ef2ff6c685a282a68459 /components/wifi.c
parent7246dc4381c6c95454672a5c1aff65a02d6d3747 (diff)
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.
Diffstat (limited to 'components/wifi.c')
-rw-r--r--components/wifi.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/components/wifi.c b/components/wifi.c
index 30b57ab..9ecb8e1 100644
--- a/components/wifi.c
+++ b/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 @@ wifi_perc(const char *iface)
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 *