From f757810f489b12d2a98dcb09751003f4ed002538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Tue, 20 Oct 2020 21:40:51 +0200 Subject: Improve handling of no data in Disk and Network IO Meters --- freebsd/Platform.c | 18 +++++++++--------- freebsd/Platform.h | 6 ++++-- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'freebsd') diff --git a/freebsd/Platform.c b/freebsd/Platform.c index b03c58be..465781a8 100644 --- a/freebsd/Platform.c +++ b/freebsd/Platform.c @@ -241,12 +241,15 @@ char* Platform_getProcessEnv(pid_t pid) { return env; } -void Platform_getDiskIO(unsigned long int *bytesRead, unsigned long int *bytesWrite, unsigned long int *msTimeSpend) { +bool Platform_getDiskIO(unsigned long int *bytesRead, + unsigned long int *bytesWrite, + unsigned long int *msTimeSpend) { // TODO *bytesRead = *bytesWrite = *msTimeSpend = 0; + return false; } -void Platform_getNetworkIO(unsigned long int *bytesReceived, +bool Platform_getNetworkIO(unsigned long int *bytesReceived, unsigned long int *packetsReceived, unsigned long int *bytesTransmitted, unsigned long int *packetsTransmitted) { @@ -258,13 +261,9 @@ void Platform_getNetworkIO(unsigned long int *bytesReceived, const int countMib[] = { CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_SYSTEM, IFMIB_IFCOUNT }; r = sysctl(countMib, ARRAYSIZE(countMib), &count, &countLen, NULL, 0); - if (r < 0) { - *bytesReceived = 0; - *packetsReceived = 0; - *bytesTransmitted = 0; - *packetsTransmitted = 0; - return; - } + if (r < 0) + return false; + unsigned long int bytesReceivedSum = 0, packetsReceivedSum = 0, bytesTransmittedSum = 0, packetsTransmittedSum = 0; @@ -291,4 +290,5 @@ void Platform_getNetworkIO(unsigned long int *bytesReceived, *packetsReceived = packetsReceivedSum; *bytesTransmitted = bytesTransmittedSum; *packetsTransmitted = packetsTransmittedSum; + return true; } diff --git a/freebsd/Platform.h b/freebsd/Platform.h index c5cf659f..40fb2d97 100644 --- a/freebsd/Platform.h +++ b/freebsd/Platform.h @@ -43,9 +43,11 @@ void Platform_setZfsCompressedArcValues(Meter* this); char* Platform_getProcessEnv(pid_t pid); -void Platform_getDiskIO(unsigned long int *bytesRead, unsigned long int *bytesWrite, unsigned long int *msTimeSpend); +bool Platform_getDiskIO(unsigned long int *bytesRead, + unsigned long int *bytesWrite, + unsigned long int *msTimeSpend); -void Platform_getNetworkIO(unsigned long int *bytesReceived, +bool Platform_getNetworkIO(unsigned long int *bytesReceived, unsigned long int *packetsReceived, unsigned long int *bytesTransmitted, unsigned long int *packetsTransmitted); -- cgit v1.2.3