From e476640b7406380b19ae2f6ac1a86b709004668a Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Mon, 2 Apr 2007 19:47:32 +0200 Subject: [PATCH] simple plugins: use fscanf --- plugins/load.c | 20 ++++++-------------- plugins/random.c | 20 ++++++-------------- plugins/uptime.c | 20 ++++++-------------- 3 files changed, 18 insertions(+), 42 deletions(-) diff --git a/plugins/load.c b/plugins/load.c index 75a039f..6e9d5a5 100644 --- a/plugins/load.c +++ b/plugins/load.c @@ -20,7 +20,6 @@ #include #include -#include "helper.h" #include "logging.h" #include "plugins.h" #include "probe.h" @@ -40,28 +39,21 @@ static const char * get_ds(int ds_id) static int probe(void) { - FILE *fp; - char buffer[32]; - char *val[3]; - - fp = fopen("/proc/loadavg", "r"); + FILE *fp = fopen("/proc/loadavg", "r"); if (fp == NULL) { - log_print(LOG_WARN, "plugin load"); + log_print(LOG_WARN, "plugin load: fopen()"); return -1; } - if (fgets(buffer, sizeof(buffer), fp) == NULL) { - log_print(LOG_WARN, "plugin load"); + double load1, load5, load15; + if (fscanf(fp, "%lf %lf %lf", &load1, &load5, &load15) != 3) { + log_print(LOG_WARN, "plugin load: fscanf()"); fclose(fp); return -1; } - fclose(fp); - if (strsplit(buffer, " \t\n", val, 3) != 3) - return -1; - - probe_submit(&plugin, "load.rrd", 0, "%s:%s:%s", val[0], val[1], val[2]); + probe_submit(&plugin, "load.rrd", 0, "%.02lf:%.02lf:%.02lf", load1, load5, load15); return 0; } diff --git a/plugins/random.c b/plugins/random.c index 4e3e667..5f974f5 100644 --- a/plugins/random.c +++ b/plugins/random.c @@ -20,7 +20,6 @@ #include #include -#include "helper.h" #include "logging.h" #include "plugins.h" #include "probe.h" @@ -38,28 +37,21 @@ static const char * get_ds(int ds_id) static int probe(void) { - FILE *fp; - char buffer[32]; - char *val[1]; - - fp = fopen("/proc/sys/kernel/random/entropy_avail", "r"); + FILE *fp = fopen("/proc/sys/kernel/random/entropy_avail", "r"); if (fp == NULL) { - log_print(LOG_WARN, "plugin random"); + log_print(LOG_WARN, "plugin random: fopen()"); return -1; } - if (fgets(buffer, sizeof(buffer), fp) == NULL) { - log_print(LOG_WARN, "plugin random"); + int entropy; + if (fscanf(fp, "%d", &entropy) != 1) { + log_print(LOG_WARN, "plugin random: fopen()"); fclose(fp); return -1; } - fclose(fp); - if (strsplit(buffer, " \t\n", val, 1) != 1) - return -1; - - probe_submit(&plugin, "random.rrd", 0, "%s", val[0]); + probe_submit(&plugin, "random.rrd", 0, "%d", entropy); return 0; } diff --git a/plugins/uptime.c b/plugins/uptime.c index f15c718..6a80289 100644 --- a/plugins/uptime.c +++ b/plugins/uptime.c @@ -20,7 +20,6 @@ #include #include -#include "helper.h" #include "logging.h" #include "plugins.h" #include "probe.h" @@ -39,28 +38,21 @@ static const char * get_ds(int ds_id) static int probe(void) { - FILE *fp; - char buffer[32]; - char *val[2]; - - fp = fopen("/proc/uptime", "r"); + FILE *fp = fopen("/proc/uptime", "r"); if (fp == NULL) { - log_print(LOG_WARN, "plugin uptime"); + log_print(LOG_WARN, "plugin uptime: fopen()"); return -1; } - if (fgets(buffer, sizeof(buffer), fp) == NULL) { - log_print(LOG_WARN, "plugin uptime"); + double uptime, idletime; + if (fscanf(fp, "%lf %lf\n", &uptime, &idletime) != 2) { + log_print(LOG_WARN, "plugin uptime: fscanf()"); fclose(fp); return -1; } - fclose(fp); - if (strsplit(buffer, " \t\n", val, 2) != 2) - return -1; - - probe_submit(&plugin, "uptime.rrd", 0, "%s:%s", val[0], val[1]); + probe_submit(&plugin, "uptime.rrd", 0, "%.02lf:%.02lf", uptime, idletime); return 0; }