X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrdcached.c;h=fb7eb79e8ec50eca5ab5d9273ff349d9fb5dd4cf;hb=2f2744072ab144b8130b2296327fc3382e5f7f80;hp=326a8898622179c1ca741ba3d0f710f3a828d161;hpb=a2bf02b4f5bf4a22395b57bba6715dada3859612;p=collectd.git diff --git a/src/rrdcached.c b/src/rrdcached.c index 326a8898..fb7eb79e 100644 --- a/src/rrdcached.c +++ b/src/rrdcached.c @@ -24,6 +24,8 @@ #include "common.h" #include "utils_rrdcreate.h" +#undef HAVE_CONFIG_H +#include #include /* @@ -62,12 +64,14 @@ static int value_list_to_string (char *buffer, int buffer_len, int offset; int status; int i; + time_t t; assert (0 == strcmp (ds->type, vl->type)); memset (buffer, '\0', buffer_len); - status = ssnprintf (buffer, buffer_len, "%u", (unsigned int) vl->time); + t = CDTIME_T_TO_TIME_T (vl->time); + status = ssnprintf (buffer, buffer_len, "%lu", (unsigned long) t); if ((status < 1) || (status >= buffer_len)) return (-1); offset = status; @@ -75,7 +79,9 @@ static int value_list_to_string (char *buffer, int buffer_len, for (i = 0; i < ds->ds_num; i++) { if ((ds->ds[i].type != DS_TYPE_COUNTER) - && (ds->ds[i].type != DS_TYPE_GAUGE)) + && (ds->ds[i].type != DS_TYPE_GAUGE) + && (ds->ds[i].type != DS_TYPE_DERIVE) + && (ds->ds[i].type != DS_TYPE_ABSOLUTE)) return (-1); if (ds->ds[i].type == DS_TYPE_COUNTER) @@ -83,10 +89,19 @@ static int value_list_to_string (char *buffer, int buffer_len, status = ssnprintf (buffer + offset, buffer_len - offset, ":%llu", vl->values[i].counter); } - else /* if (ds->ds[i].type == DS_TYPE_GAUGE) */ + else if (ds->ds[i].type == DS_TYPE_GAUGE) { status = ssnprintf (buffer + offset, buffer_len - offset, - ":%lf", vl->values[i].gauge); + ":%f", vl->values[i].gauge); + } + else if (ds->ds[i].type == DS_TYPE_DERIVE) { + status = ssnprintf (buffer + offset, buffer_len - offset, + ":%"PRIi64, vl->values[i].derive); + } + else /* if (ds->ds[i].type == DS_TYPE_ABSOLUTE) */ { + status = ssnprintf (buffer + offset, buffer_len - offset, + ":%"PRIu64, vl->values[i].absolute); + } if ((status < 1) || (status >= (buffer_len - offset))) @@ -181,18 +196,14 @@ static int rc_config (const char *key, const char *value) } else if (strcasecmp ("CreateFiles", key) == 0) { - if ((strcasecmp ("false", value) == 0) - || (strcasecmp ("no", value) == 0) - || (strcasecmp ("off", value) == 0)) + if (IS_FALSE (value)) config_create_files = 0; else config_create_files = 1; } else if (strcasecmp ("CollectStatistics", key) == 0) { - if ((strcasecmp ("false", value) == 0) - || (strcasecmp ("no", value) == 0) - || (strcasecmp ("off", value) == 0)) + if (IS_FALSE (value)) config_collect_stats = 0; else config_collect_stats = 1;