X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fdaemon%2Futils_cache.c;h=3f7a596b1d6acae1b4ce6a4e82db7346a3ac78d3;hb=1978dba8e613eb01581b3376a42137e6fe11ca1a;hp=b4f81cdaf8c18f6658938ab5618ebb6187ba4690;hpb=f19159854c272e5a8bb9f6915c456cf3a0f2d20e;p=collectd.git diff --git a/src/daemon/utils_cache.c b/src/daemon/utils_cache.c index b4f81cda..3f7a596b 100644 --- a/src/daemon/utils_cache.c +++ b/src/daemon/utils_cache.c @@ -128,7 +128,7 @@ static void cache_free (cache_entry_t *ce) static void uc_check_range (const data_set_t *ds, cache_entry_t *ce) { - int i; + size_t i; for (i = 0; i < ds->ds_num; i++) { @@ -144,9 +144,9 @@ static void uc_check_range (const data_set_t *ds, cache_entry_t *ce) static int uc_insert (const data_set_t *ds, const value_list_t *vl, const char *key) { - int i; char *key_copy; cache_entry_t *ce; + size_t i; /* `cache_lock' has been locked by `uc_update' */ @@ -198,6 +198,7 @@ static int uc_insert (const data_set_t *ds, const value_list_t *vl, /* This shouldn't happen. */ ERROR ("uc_insert: Don't know how to handle data source type %i.", ds->ds[i].type); + sfree (key_copy); return (-1); } /* switch (ds->ds[i].type) */ } /* for (i) */ @@ -373,7 +374,7 @@ int uc_update (const data_set_t *ds, const value_list_t *vl) char name[6 * DATA_MAX_NAME_LEN]; cache_entry_t *ce = NULL; int status; - int i; + size_t i; if (FORMAT_VL (name, sizeof (name), vl) != 0) { @@ -411,23 +412,7 @@ int uc_update (const data_set_t *ds, const value_list_t *vl) { case DS_TYPE_COUNTER: { - counter_t diff; - - /* check if the counter has wrapped around */ - if (vl->values[i].counter < ce->values_raw[i].counter) - { - if (ce->values_raw[i].counter <= 4294967295U) - diff = (4294967295U - ce->values_raw[i].counter) - + vl->values[i].counter; - else - diff = (18446744073709551615ULL - ce->values_raw[i].counter) - + vl->values[i].counter; - } - else /* counter has NOT wrapped around */ - { - diff = vl->values[i].counter - ce->values_raw[i].counter; - } - + counter_t diff = counter_diff (ce->values_raw[i].counter, vl->values[i].counter); ce->values_gauge[i] = ((double) diff) / (CDTIME_T_TO_DOUBLE (vl->time - ce->last_time)); ce->values_raw[i].counter = vl->values[i].counter; @@ -441,9 +426,7 @@ int uc_update (const data_set_t *ds, const value_list_t *vl) case DS_TYPE_DERIVE: { - derive_t diff; - - diff = vl->values[i].derive - ce->values_raw[i].derive; + derive_t diff = vl->values[i].derive - ce->values_raw[i].derive; ce->values_gauge[i] = ((double) diff) / (CDTIME_T_TO_DOUBLE (vl->time - ce->last_time)); @@ -465,7 +448,7 @@ int uc_update (const data_set_t *ds, const value_list_t *vl) return (-1); } /* switch (ds->ds[i].type) */ - DEBUG ("uc_update: %s: ds[%i] = %lf", name, i, ce->values_gauge[i]); + DEBUG ("uc_update: %s: ds[%zu] = %lf", name, i, ce->values_gauge[i]); } /* for (i) */ /* Update the history if it exists. */