From: Michael Tremer Date: Sun, 28 Sep 2025 09:42:33 +0000 (+0000) Subject: util: Add helper function to format numbers for RRD X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=356845db3da0fb6938f91ac56886a151fc4b1850;p=telemetry.git util: Add helper function to format numbers for RRD Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index 1a799de..7587c56 100644 --- a/Makefile.am +++ b/Makefile.am @@ -105,7 +105,9 @@ dist_collectyd_SOURCES = \ src/daemon/modules/loadavg.c \ src/daemon/modules/loadavg.h \ src/daemon/queue.c \ - src/daemon/queue.h + src/daemon/queue.h \ + src/daemon/util.c \ + src/daemon/util.h collectyd_CPPFLAGS = \ $(AM_CPPFLAGS) diff --git a/src/daemon/util.c b/src/daemon/util.c new file mode 100644 index 0000000..6231c47 --- /dev/null +++ b/src/daemon/util.c @@ -0,0 +1,42 @@ +/*############################################################################# +# # +# collecty - A system statistics collection daemon for IPFire # +# Copyright (C) 2025 IPFire Development Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +#############################################################################*/ + +#include +#include + +#include "util.h" + +int __collecty_format_number(char* buffer, size_t length, int number) { + int r; + + // Format the number if positive or zero + if (number >= 0) + r = snprintf(buffer, length, "%d", number); + + // Otherwise we set it to UNKNOWN + else + r = snprintf(buffer, length, "U"); + + // Abort on error + if (r < 0) + return -errno; + + return 0; +} diff --git a/src/daemon/util.h b/src/daemon/util.h new file mode 100644 index 0000000..04d8dfa --- /dev/null +++ b/src/daemon/util.h @@ -0,0 +1,29 @@ +/*############################################################################# +# # +# collecty - A system statistics collection daemon for IPFire # +# Copyright (C) 2025 IPFire Development Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +#############################################################################*/ + +#ifndef COLLECTY_UTIL_H +#define COLLECTY_UTIL_H + +#define collecty_format_number(buffer, number) \ + __collecty_format_number(buffer, sizeof(buffer), number) + +int __collecty_format_number(char* buffer, size_t length, int number); + +#endif /* COLLECTY_UTIL_H */