From: Barbara Kaczorowska Date: Tue, 18 Aug 2020 23:34:37 +0000 (+0000) Subject: Add updating total_sum in distribution_sub function X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d1c9c63d3528837f22dc2b840bfd8676f6eae894;p=thirdparty%2Fcollectd.git Add updating total_sum in distribution_sub function --- diff --git a/src/daemon/distribution.c b/src/daemon/distribution.c index 52201b7e7..b446dad44 100644 --- a/src/daemon/distribution.c +++ b/src/daemon/distribution.c @@ -242,7 +242,7 @@ static double tree_get_counter(distribution_t *d, size_t node_index, } double distribution_percentile(distribution_t *dist, double percent) { - if (percent <= 0 || percent > 100 || dist == NULL) { + if (percent < 0 || percent > 100 || dist == NULL) { errno = EINVAL; return NAN; } @@ -351,6 +351,7 @@ int distribution_sub(distribution_t *d1, distribution_t *d2) { pthread_mutex_lock(&d2->mutex); if (d1->total_sum < d2->total_sum) { + d1->total_sum = d2->total_sum - d1->total_sum; for (size_t i = 0; i < tree_size(d1->num_buckets); ++i) { if (d1->tree[i].maximum != d2->tree[i].maximum || d1->tree[i].bucket_counter > d2->tree[i].bucket_counter) { @@ -363,6 +364,7 @@ int distribution_sub(distribution_t *d1, distribution_t *d2) { d2->tree[i].bucket_counter - d1->tree[i].bucket_counter; } } else { + d1->total_sum -= d2->total_sum; for (size_t i = 0; i < tree_size(d1->num_buckets); ++i) { if (d1->tree[i].maximum != d2->tree[i].maximum || d1->tree[i].bucket_counter < d2->tree[i].bucket_counter) {