Package: vnstat Version: 1.10-1 Severity: important Tags: patch Usertags: kfreebsd X-Debbugs-CC: debian-bsd@lists.debian.org The package vnstat is completely broken on GNU/kFreeBSD. The executables do not have the intended functionality due to missing preprocessor conditionals. The present patch restores full functionality to GNU/kFreeBSD. Best regards, Mats Erik Andersson, DM
Description: Adapt source to GNU/kFreeBSD
Modify some preprocessor conditionals to detect
__FreeBSD_kernel__. This suffices.
Author: Mats Erik Andersson <debian@gisladisker.se>
Forwarded: no
Last-Update: 2011-01-05
--- vnstat-1.10.debian/src/common.h
+++ vnstat-1.10/src/common.h
@@ -20,7 +20,7 @@
#include <syslog.h>
#include <sys/statvfs.h>
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/socket.h>
--- vnstat-1.10.debian/src/ifinfo.c
+++ vnstat-1.10/src/ifinfo.c
@@ -29,7 +29,7 @@
return 0;
}
}
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
if (readifaddrs(inface)!=1) {
snprintf(errorstring, 512, "Unable to get interface \"%s\" statistics.", inface);
printe(PT_Error);
@@ -48,7 +48,7 @@
DIR *dp;
struct dirent *di;
char procline[512], temp[64];
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
struct ifaddrs *ifap, *ifa;
#endif
@@ -92,7 +92,7 @@
}
}
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
if (getifaddrs(&ifap) >= 0) {
/* make list of interfaces */
@@ -399,7 +399,7 @@
}
}
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
int readifaddrs(const char *iface)
{
struct ifaddrs *ifap, *ifa;
--- vnstat-1.10.debian/src/ifinfo.h
+++ vnstat-1.10/src/ifinfo.h
@@ -7,7 +7,7 @@
int readsysclassnet(const char *iface);
void parseifinfo(int newdb);
uint64_t countercalc(uint64_t a, uint64_t b);
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
int readifaddrs(const char *iface);
#endif
--- vnstat-1.10.debian/src/misc.c
+++ vnstat-1.10/src/misc.c
@@ -170,7 +170,7 @@
result = strtoul(statline+6, (char **)NULL, 0);
fclose(fp);
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
struct timeval btm;
size_t len = sizeof(btm);
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
Attachment:
signature.asc
Description: Digital signature