X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fdaemon%2Fplugin.c;h=51cc42568e5430ef04df0aaefa12b651e1216378;hb=20d15cfd26b23508242abcead906207bf26175d0;hp=0ef6273bf6c2d0d91034a1b20c0bdb17da50d306;hpb=e94f5c95909f895a80457baf543e03b6d6aff5ee;p=collectd.git diff --git a/src/daemon/plugin.c b/src/daemon/plugin.c index 0ef6273b..51cc4256 100644 --- a/src/daemon/plugin.c +++ b/src/daemon/plugin.c @@ -889,7 +889,7 @@ static void start_write_threads (size_t num) /* {{{ */ static void stop_write_threads (void) /* {{{ */ { write_queue_t *q; - int i; + size_t i; if (write_threads == NULL) return; @@ -930,7 +930,7 @@ static void stop_write_threads (void) /* {{{ */ if (i > 0) { - WARNING ("plugin: %i value list%s left after shutting down " + WARNING ("plugin: %zu value list%s left after shutting down " "the write threads.", i, (i == 1) ? " was" : "s were"); } @@ -1318,6 +1318,29 @@ static void plugin_flush_timeout_callback_free (void *data) sfree(cb); } /* static void plugin_flush_callback_free */ +static char *plugin_flush_callback_name (const char *name) +{ + char *flush_prefix = "flush/"; + size_t prefix_size; + char *flush_name; + size_t name_size; + + prefix_size = strlen(flush_prefix); + name_size = strlen(name); + + flush_name = malloc (sizeof(char) * (name_size + prefix_size + 1)); + if (flush_name == NULL) + { + ERROR ("plugin_flush_callback_name: malloc failed."); + return (NULL); + } + + sstrncpy (flush_name, flush_prefix, prefix_size + 1); + sstrncpy (flush_name + prefix_size, name, name_size + 1); + + return flush_name; +} /* static char *plugin_flush_callback_name */ + int plugin_register_flush (const char *name, plugin_flush_cb callback, user_data_t *ud) { @@ -1331,34 +1354,19 @@ int plugin_register_flush (const char *name, if (ctx.flush_interval != 0) { - char *flush_prefix = "flush/"; - size_t prefix_size; char *flush_name; - size_t name_size; user_data_t ud; flush_callback_t *cb; - prefix_size = strlen(flush_prefix); - name_size = strlen(name); - - flush_name = (char *) malloc (sizeof (char) * - (name_size + prefix_size + 1)); + flush_name = plugin_flush_callback_name (name); if (flush_name == NULL) - { - ERROR ("plugin_register_flush: malloc failed."); - plugin_unregister (list_flush, name); return (-1); - } - sstrncpy (flush_name, flush_prefix, prefix_size + 1); - sstrncpy (flush_name + prefix_size, name, name_size + 1); - - cb = (flush_callback_t *)malloc(sizeof(flush_callback_t)); + cb = malloc(sizeof(flush_callback_t)); if (cb == NULL) { ERROR ("plugin_register_flush: malloc failed."); sfree(flush_name); - plugin_unregister (list_flush, name); return (-1); } @@ -1368,7 +1376,6 @@ int plugin_register_flush (const char *name, ERROR ("plugin_register_flush: strdup failed."); sfree(cb); sfree(flush_name); - plugin_unregister (list_flush, name); return (-1); } cb->timeout = ctx.flush_timeout; @@ -1388,7 +1395,6 @@ int plugin_register_flush (const char *name, { sfree(cb->name); sfree(cb); - plugin_unregister (list_flush, name); return status; } } @@ -1434,7 +1440,7 @@ static void plugin_free_data_sets (void) int plugin_register_data_set (const data_set_t *ds) { data_set_t *ds_copy; - int i; + size_t i; if ((data_sets != NULL) && (c_avl_get (data_sets, ds->type, NULL) == 0)) @@ -1615,28 +1621,15 @@ int plugin_unregister_flush (const char *name) plugin_ctx_t ctx = plugin_get_ctx (); if (ctx.flush_interval != 0) - { - char *flush_prefix = "flush/"; - size_t prefix_size; + { char *flush_name; - size_t name_size; - - prefix_size = strlen(flush_prefix); - name_size = strlen(name); - flush_name = (char *) malloc (sizeof (char) * - (name_size + prefix_size + 1)); - if (flush_name == NULL) + flush_name = plugin_flush_callback_name (name); + if (flush_name != NULL) { - ERROR ("plugin_unregister_flush: malloc failed."); - return (-1); + plugin_unregister_read(flush_name); + sfree(flush_name); } - - sstrncpy (flush_name, flush_prefix, prefix_size + 1); - sstrncpy (flush_name + prefix_size, name, name_size + 1); - - plugin_unregister_read(flush_name); - sfree(flush_name); } return plugin_unregister (list_flush, name); @@ -2144,8 +2137,8 @@ static int plugin_dispatch_values_internal (value_list_t *vl) if (ds->ds_num != vl->values_len) { ERROR ("plugin_dispatch_values: ds->type = %s: " - "(ds->ds_num = %i) != " - "(vl->values_len = %i)", + "(ds->ds_num = %zu) != " + "(vl->values_len = %zu)", ds->type, ds->ds_num, vl->values_len); return (-1); }