X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_latency_config.c;fp=src%2Futils_latency_config.c;h=2121e54673cf8366588ac8343b0014e078444050;hb=e7aa9832d25a98f78bb5af45a90ec404359537df;hp=7504aafb966ed49315cd3acbaab50a1bf32f2520;hpb=1d888f3f3a131f8eb2d9e0884665b6951ecee550;p=collectd.git diff --git a/src/utils_latency_config.c b/src/utils_latency_config.c index 7504aafb..2121e546 100644 --- a/src/utils_latency_config.c +++ b/src/utils_latency_config.c @@ -29,13 +29,13 @@ #include "common.h" #include "utils_latency_config.h" -int latency_config_add_percentile (const char *plugin, latency_config_t *cl, - oconfig_item_t *ci) +int latency_config_add_percentile(const char *plugin, latency_config_t *cl, + oconfig_item_t *ci) { if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_NUMBER)) { - ERROR ("%s plugin: \"%s\" requires exactly one numeric argument.", - plugin, ci->key); + ERROR("%s plugin: \"%s\" requires exactly one numeric argument.", plugin, + ci->key); return (-1); } @@ -44,16 +44,17 @@ int latency_config_add_percentile (const char *plugin, latency_config_t *cl, if ((percent <= 0.0) || (percent >= 100)) { - ERROR ("%s plugin: The value for \"%s\" must be between 0 and 100, " - "exclusively.", plugin, ci->key); + ERROR("%s plugin: The value for \"%s\" must be between 0 and 100, " + "exclusively.", + plugin, ci->key); return (ERANGE); } - tmp = realloc (cl->percentile, - sizeof (*cl->percentile) * (cl->percentile_num + 1)); + tmp = realloc(cl->percentile, + sizeof(*cl->percentile) * (cl->percentile_num + 1)); if (tmp == NULL) { - ERROR ("%s plugin: realloc failed.", plugin); + ERROR("%s plugin: realloc failed.", plugin); return (ENOMEM); } cl->percentile = tmp; @@ -63,31 +64,29 @@ int latency_config_add_percentile (const char *plugin, latency_config_t *cl, return (0); } /* int latency_config_add_percentile */ -int latency_config_add_rate (const char *plugin, latency_config_t *cl, - oconfig_item_t *ci) +int latency_config_add_rate(const char *plugin, latency_config_t *cl, + oconfig_item_t *ci) { - if ((ci->values_num != 2) - ||(ci->values[0].type != OCONFIG_TYPE_NUMBER) - ||(ci->values[1].type != OCONFIG_TYPE_NUMBER)) + || (ci->values[0].type != OCONFIG_TYPE_NUMBER) + || (ci->values[1].type != OCONFIG_TYPE_NUMBER)) { - ERROR ("%s plugin: \"%s\" requires exactly two numeric arguments.", - plugin, ci->key); + ERROR("%s plugin: \"%s\" requires exactly two numeric arguments.", plugin, + ci->key); return (-1); } if (ci->values[1].value.number && ci->values[1].value.number <= ci->values[0].value.number) { - ERROR ("%s plugin: MIN must be less than MAX in \"%s\".", - plugin, ci->key); + ERROR("%s plugin: MIN must be less than MAX in \"%s\".", plugin, ci->key); return (-1); } if (ci->values[0].value.number < 0.001) { - ERROR ("%s plugin: MIN must be greater or equal to 0.001 in \"%s\".", - plugin, ci->key); + ERROR("%s plugin: MIN must be greater or equal to 0.001 in \"%s\".", plugin, + ci->key); return (-1); } @@ -95,11 +94,10 @@ int latency_config_add_rate (const char *plugin, latency_config_t *cl, cdtime_t upper = DOUBLE_TO_CDTIME_T(ci->values[1].value.number); cdtime_t *tmp; - tmp = realloc (cl->rates, - sizeof (*cl->rates) * (cl->rates_num + 1) * 2); + tmp = realloc(cl->rates, sizeof(*cl->rates) * (cl->rates_num + 1) * 2); if (tmp == NULL) { - ERROR ("%s plugin: realloc failed.", plugin); + ERROR("%s plugin: realloc failed.", plugin); return (ENOMEM); } cl->rates = tmp; @@ -110,54 +108,63 @@ int latency_config_add_rate (const char *plugin, latency_config_t *cl, return (0); } /* int latency_config_add_rate */ - -int latency_config_copy (latency_config_t *dst, const latency_config_t src) +int latency_config_copy(latency_config_t *dst, const latency_config_t src) { + *dst = (latency_config_t){ + .rates = NULL, + .rates_num = src.rates_num, + .rates_type = NULL, + .percentile = NULL, + .percentile_num = src.percentile_num, + .percentile_type = NULL, + }; + /* Copy percentiles configuration */ dst->percentile_num = src.percentile_num; - dst->percentile = malloc(sizeof (*dst->percentile) * (src.percentile_num)); + dst->percentile = calloc(src.percentile_num, sizeof(*dst->percentile)); if (dst->percentile == NULL) - goto nomem; + return (-1); - memcpy (dst->percentile, src.percentile, - (sizeof (*dst->percentile) * (src.percentile_num))); + memcpy(dst->percentile, src.percentile, + (sizeof(*dst->percentile) * (src.percentile_num))); if (src.percentile_type != NULL) { dst->percentile_type = strdup(src.percentile_type); if (dst->percentile_type == NULL) - goto nomem; + { + latency_config_free(*dst); + return (-1); + } } /* Copy rates configuration */ dst->rates_num = src.rates_num; - dst->rates = malloc(sizeof (*dst->rates) * (src.rates_num) * 2); + dst->rates = calloc(src.rates_num * 2, sizeof(*dst->rates)); if (dst->rates == NULL) - goto nomem; + { + latency_config_free(*dst); + return (-1); + } - memcpy (dst->rates, src.rates, - (sizeof (*dst->rates) * (src.rates_num) * 2)); + memcpy(dst->rates, src.rates, (sizeof(*dst->rates) * (src.rates_num) * 2)); if (src.rates_type != NULL) { dst->rates_type = strdup(src.rates_type); if (dst->rates_type == NULL) - goto nomem; + { + latency_config_free(*dst); + return (-1); + } } return (0); -nomem: - free (dst->rates); - free (dst->rates_type); - free (dst->percentile); - free (dst->percentile_type); - return (-1); } /* int latency_config_copy */ -void latency_config_free (latency_config_t lc) -{ - sfree (lc.rates); - sfree (lc.rates_type); - sfree (lc.percentile); - sfree (lc.percentile_type); +void latency_config_free(latency_config_t lc) { + sfree(lc.rates); + sfree(lc.rates_type); + sfree(lc.percentile); + sfree(lc.percentile_type); } /* void latency_config_free */