X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrdcached.c;h=11c1c6a7f85c3e96c2380602094c81f09e4bb97f;hb=3b473acc5d4d27e5cf5101a4b8cc8a21c2bb7262;hp=a392715616ff7fb501cc8294db0461a9412bb62a;hpb=887bc2aa36a2b48ab28b0b0138bd55411efe55e6;p=collectd.git diff --git a/src/rrdcached.c b/src/rrdcached.c index a3927156..11c1c6a7 100644 --- a/src/rrdcached.c +++ b/src/rrdcached.c @@ -49,6 +49,14 @@ static rrdcreate_config_t rrdcreate_config = /* consolidation_functions_num = */ 0 }; +/* + * Prototypes. + */ +static int rc_write (const data_set_t *ds, const value_list_t *vl, + user_data_t __attribute__((unused)) *user_data); +static int rc_flush (__attribute__((unused)) cdtime_t timeout, + const char *identifier, __attribute__((unused)) user_data_t *ud); + static int value_list_to_string (char *buffer, int buffer_len, const data_set_t *ds, const value_list_t *vl) { @@ -156,13 +164,20 @@ static int value_list_to_filename (char *buffer, int buffer_len, static const char *config_get_string (oconfig_item_t *ci) { if ((ci->children_num != 0) || (ci->values_num != 1) - || (ci->values[0].type != OCONFIG_TYPE_STRING)) + || ((ci->values[0].type != OCONFIG_TYPE_STRING) + && (ci->values[0].type != OCONFIG_TYPE_BOOLEAN))) { ERROR ("rrdcached plugin: %s expects a single string argument.", ci->key); return (NULL); } + if (ci->values[0].type == OCONFIG_TYPE_BOOLEAN) { + if (ci->values[0].value.boolean) + return "true"; + else + return "false"; + } return (ci->values[0].value.string); } /* const char *config_get_string */ @@ -227,6 +242,11 @@ static int rc_config (oconfig_item_t *ci) continue; } } + + if (daemon_address != NULL) { + plugin_register_write ("rrdcached", rc_write, /* user_data = */ NULL); + plugin_register_flush ("rrdcached", rc_flush, /* user_data = */ NULL); + } return (0); } /* int rc_config */ @@ -466,8 +486,6 @@ void module_register (void) { plugin_register_complex_config ("rrdcached", rc_config); plugin_register_init ("rrdcached", rc_init); - plugin_register_write ("rrdcached", rc_write, /* user_data = */ NULL); - plugin_register_flush ("rrdcached", rc_flush, /* user_data = */ NULL); plugin_register_shutdown ("rrdcached", rc_shutdown); } /* void module_register */