[hackers] [slstatus] netspeeds: added error condition for openbsd || Tobias Tschinkowitz

From: <git_AT_suckless.org>
Date: Sat, 19 May 2018 12:21:12 +0200 (CEST)

commit 2321aecff01fb9aa2fda156bb59bca6d16bd7c5d
Author: Tobias Tschinkowitz <he4d_AT_posteo.de>
AuthorDate: Sat May 19 11:23:16 2018 +0200
Commit: Aaron Marcher <me_AT_drkhsh.at>
CommitDate: Sat May 19 12:20:25 2018 +0200

    netspeeds: added error condition for openbsd
    
    implemented additional error condition for openbsd netstat in case the
    interface could not be found in the interface list or if_data is not
    readable.

diff --git a/components/netspeeds.c b/components/netspeeds.c
index 9315fef..c846a2c 100644
--- a/components/netspeeds.c
+++ b/components/netspeeds.c
_AT_@ -64,6 +64,7 @@
                 uint64_t rxbytes = 0;
                 const char *rxs;
                 extern const unsigned int interval;
+ char if_ok = 0;
 
                 if (getifaddrs(&ifal) == -1) {
                         warn("getifaddrs failed");
_AT_@ -72,10 +73,14 @@
                 for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
                         if (!strcmp(ifa->ifa_name, interface) &&
                            (ifd = (struct if_data *)ifa->ifa_data)) {
- rxbytes += ifd->ifi_ibytes;
+ rxbytes += ifd->ifi_ibytes, if_ok = 1;
                         }
                 }
                 freeifaddrs(ifal);
+ if (!if_ok) {
+ warn("reading 'if_data' failed");
+ return NULL;
+ }
 
                 rxs = oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) /
                                               interval * 1000) : NULL;
_AT_@ -91,6 +96,7 @@
                 uint64_t txbytes = 0;
                 const char *txs;
                 extern const unsigned int interval;
+ char if_ok = 0;
 
                 if (getifaddrs(&ifal) == -1) {
                         warn("getifaddrs failed");
_AT_@ -99,10 +105,14 @@
                 for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
                         if (!strcmp(ifa->ifa_name, interface) &&
                            (ifd = (struct if_data *)ifa->ifa_data)) {
- txbytes += ifd->ifi_obytes;
+ txbytes += ifd->ifi_obytes, if_ok = 1;
                         }
                 }
                 freeifaddrs(ifal);
+ if (!if_ok) {
+ warn("reading 'if_data' failed");
+ return NULL;
+ }
 
                 txs = oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) /
                                               interval * 1000) : NULL;
Received on Sat May 19 2018 - 12:21:12 CEST

This archive was generated by hypermail 2.3.0 : Sat May 19 2018 - 12:24:25 CEST