From 7a8ac68b20052d5b86b88f3b7e1bf966f3185f80 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Ritschard Date: Thu, 20 Nov 2014 13:24:35 +0100 Subject: [PATCH] Provide sensible default for configuration values This reorders arguments a bit: - The query is expected to be the block argument - The type instance is inferred from the query if unsupplied - The type will default to gauge if not supplied --- src/redis.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/redis.c b/src/redis.c index 2ce1f96a..7864ead0 100644 --- a/src/redis.c +++ b/src/redis.c @@ -133,25 +133,31 @@ static redis_query_t *redis_config_query (oconfig_item_t *ci) /* {{{ */ ERROR("redis plugin: calloca failed adding redis_query."); return NULL; } - status = cf_util_get_string_buffer(ci, rq->type, sizeof(rq->type)); + status = cf_util_get_string_buffer(ci, rq->query, sizeof(rq->query)); if (status != 0) goto err; + /* + * Default to a gauge type. + */ + (void)strncpy(rq->type, "gauge", sizeof(rq->type)); + (void)strncpy(rq->instance, rq->query, sizeof(rq->instance)); + replace_special(rq->instance, sizeof(rq->instance)); + for (i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; - if (strcasecmp("Exec", option->key) == 0) { - status = cf_util_get_string_buffer(option, rq->query, sizeof(rq->query)); + if (strcasecmp("Type", option->key) == 0) { + status = cf_util_get_string_buffer(option, rq->type, sizeof(rq->type)); } else if (strcasecmp("Instance", option->key) == 0) { status = cf_util_get_string_buffer(option, rq->instance, sizeof(rq->instance)); + } else { + WARNING("redis plugin: unknown configuration option: %s", option->key); + status = -1; } if (status != 0) goto err; } - if (strlen(rq->query) == 0) { - WARNING("redis plugin: invalid query definition for: %s", rq->type); - goto err; - } return rq; err: free(rq); -- 2.11.0