diff options
author | parazyd <parazyd@dyne.org> | 2017-10-24 11:03:17 +0200 |
---|---|---|
committer | Aaron Marcher <me@drkhsh.at> | 2017-10-24 11:16:54 +0200 |
commit | d2988c72e3e77e188fda0176ce4969322e69fae9 (patch) | |
tree | cc52e57f10c40e18a560ef2ff6c685a282a68459 /components/wifi.c | |
parent | 7246dc4381c6c95454672a5c1aff65a02d6d3747 (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.c | 10 |
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 * |