]> granicus.if.org Git - vnstat/commitdiff
refactoring
authorTeemu Toivola <git@humdi.net>
Sun, 16 Jun 2019 14:16:29 +0000 (17:16 +0300)
committerTeemu Toivola <git@humdi.net>
Sun, 16 Jun 2019 14:16:29 +0000 (17:16 +0300)
src/common.h
src/ifinfo.c
src/ifinfo.h
src/misc.c

index 5f56cea8c0b5d8a9a2f7e0e3216f944bd0861814..a2dce02d36780750a7ae0a71b01111fa7d419423 100644 (file)
@@ -33,6 +33,7 @@
 #include <sys/sysctl.h>
 #include <net/if.h>
 #include <ifaddrs.h>
+#define BSD_VNSTAT
 #endif
 
 /* OpenBSD and NetBSD don't support the ' character (decimal conversion) in printf formatting */
index 9c55e1c0adbd05116942850e79da4123f161870b..52f190c74cb5ab17931db936b1f966646a58f967 100644 (file)
@@ -48,7 +48,7 @@ int getifinfo(const char *iface)
                return 1;
        }
 
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#elif defined(BSD_VNSTAT)
        if (readifaddrs(inface) == 1) {
                ifinfo.timestamp = time(NULL);
                return 1;
@@ -109,20 +109,25 @@ int getifliststring(char **ifacelist, int showspeed)
        return 0;
 }
 
-int getiflist(iflist **ifl, int getspeed)
+int getiflist(iflist **ifl, const int getspeed)
 {
-       char temp[64];
 #if defined(__linux__) || defined(CHECK_VNSTAT)
+       return getiflist_linux(ifl, getspeed);
+#elif defined(BSD_VNSTAT)
+       return getiflist_bsd(ifl, getspeed);
+#endif
+}
+
+#if defined(__linux__) || defined(CHECK_VNSTAT)
+int getiflist_linux(iflist **ifl, const int getspeed)
+{
+       char temp[64];
        char interface[32];
        FILE *fp;
        DIR *dp;
        struct dirent *di;
        char procline[512];
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
-       struct ifaddrs *ifap, *ifa;
-#endif
 
-#if defined(__linux__) || defined(CHECK_VNSTAT)
        if ((fp = fopen(PROCNETDEV, "r")) != NULL) {
 
                /* make list of interfaces */
@@ -162,7 +167,14 @@ int getiflist(iflist **ifl, int getspeed)
                }
        }
 
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+       return 0;
+}
+#elif defined(BSD_VNSTAT)
+int getiflist_bsd(iflist **ifl, const int getspeed)
+{
+       char temp[64];
+       struct ifaddrs *ifap, *ifa;
+
        if (getifaddrs(&ifap) >= 0) {
 
                /* make list of interfaces */
@@ -181,10 +193,9 @@ int getiflist(iflist **ifl, int getspeed)
                return 1;
        }
 
-#endif
-
        return 0;
 }
+#endif
 
 int readproc(const char *iface)
 {
@@ -325,7 +336,7 @@ int readsysclassnet(const char *iface)
        return 1;
 }
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#if defined(BSD_VNSTAT)
 int getifdata(const char *iface, struct if_data *ifd)
 {
        struct ifaddrs *ifap, *ifa;
@@ -382,6 +393,7 @@ int readifaddrs(const char *iface)
 uint32_t getifspeed(const char *iface)
 {
        uint64_t speed = 0;
+
 #if defined(__linux__)
 
        FILE *fp;
@@ -405,7 +417,7 @@ uint32_t getifspeed(const char *iface)
        }
        fclose(fp);
 
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#elif defined(BSD_VNSTAT)
 
        struct if_data ifd;
 
@@ -418,6 +430,7 @@ uint32_t getifspeed(const char *iface)
        }
 
 #endif
+
        if (debug)
                printf("getifspeed: \"%s\": %" PRIu64 "\n", iface, speed);
 
index ff9cd0ab08de24e6a116844cdbfb45102409d68e..572a013eb1a89cfd7839d331ddadce02e4913635 100644 (file)
@@ -3,16 +3,21 @@
 
 #include "iflist.h"
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#if defined(BSD_VNSTAT)
 #include <net/if.h>
 #endif
 
 int getifinfo(const char *iface);
 int getifliststring(char **ifacelist, int showspeed);
 int getiflist(iflist **ifl, int getspeed);
+#if defined(__linux__) || defined(CHECK_VNSTAT)
+int getiflist_linux(iflist **ifl, const int getspeed);
+#elif defined(BSD_VNSTAT)
+int getiflist_bsd(iflist **ifl, const int getspeed);
+#endif
 int readproc(const char *iface);
 int readsysclassnet(const char *iface);
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#if defined(BSD_VNSTAT)
 int getifdata(const char *iface, struct if_data *ifd);
 int readifaddrs(const char *iface);
 #endif
index aa4fc1d703515ea9fc618cefc15b4256236a76f4..5d717e7e6de313c589fcc06134eebe4aa7ad4e51 100644 (file)
@@ -1,4 +1,4 @@
-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(__FreeBSD_kernel__)
+#if !defined(BSD_VNSTAT)
 #if defined(__clang__)
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wreserved-id-macro"
@@ -127,7 +127,7 @@ uint64_t getbtime(void)
 
        result = strtoull(statline + 6, (char **)NULL, 0);
 
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+#elif defined(BSD_VNSTAT)
        struct timeval btm;
        size_t len = sizeof(btm);
        int mib[2] = {CTL_KERN, KERN_BOOTTIME};