X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fredis.c;h=439cf4b8158501e2bd215228b0a369e9dcb32f52;hb=59dded4cc1a2077ad11c6e9b507e15ad19e0e38c;hp=b694e09db8f84a6be6767b20cacd50d37791b074;hpb=565c731a4353d1453b65dc9a4267e1f8e4740c06;p=collectd.git diff --git a/src/redis.c b/src/redis.c index b694e09d..439cf4b8 100644 --- a/src/redis.c +++ b/src/redis.c @@ -28,6 +28,10 @@ #include #include +#ifndef HOST_NAME_MAX +# define HOST_NAME_MAX _POSIX_HOST_NAME_MAX +#endif + #define REDIS_DEF_HOST "localhost" #define REDIS_DEF_PORT 6379 #define REDIS_DEF_TIMEOUT 2000 @@ -50,6 +54,7 @@ struct redis_node_s { char name[MAX_REDIS_NODE_NAME]; char host[HOST_NAME_MAX]; + char passwd[HOST_NAME_MAX]; int port; int timeout; @@ -132,6 +137,8 @@ static int redis_config_node (oconfig_item_t *ci) /* {{{ */ } else if (strcasecmp ("Timeout", option->key) == 0) status = cf_util_get_int (option, &rn.timeout); + else if (strcasecmp ("Password", option->key) == 0) + status = cf_util_get_string_buffer (option, rn.passwd, sizeof (rn.passwd)); else WARNING ("redis plugin: Option `%s' not allowed inside a `Node' " "block. I'll ignore this option.", option->key); @@ -251,6 +258,18 @@ static int redis_read (void) /* {{{ */ continue; } + if (strlen (rn->passwd) > 0) + { + DEBUG ("redis plugin: authenticanting node `%s' passwd(%s).", rn->name, rn->passwd); + status = credis_auth(rh, rn->passwd); + if (status != 0) + { + WARNING ("redis plugin: unable to authenticate on node `%s'.", rn->name); + credis_close (rh); + continue; + } + } + memset (&info, 0, sizeof (info)); status = credis_info (rh, &info); if (status != 0)