projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #1699 from tokkee/sh/grpc
[collectd.git]
/
src
/
daemon
/
plugin.c
diff --git
a/src/daemon/plugin.c
b/src/daemon/plugin.c
index
e7993f1
..
3a2e287
100644
(file)
--- a/
src/daemon/plugin.c
+++ b/
src/daemon/plugin.c
@@
-368,13
+368,12
@@
static int create_register_callback (llist_t **list, /* {{{ */
{
callback_func_t *cf;
{
callback_func_t *cf;
- cf =
(callback_func_t *) malloc (
sizeof (*cf));
+ cf =
calloc (1,
sizeof (*cf));
if (cf == NULL)
{
if (cf == NULL)
{
- ERROR ("plugin: create_register_callback:
m
alloc failed.");
+ ERROR ("plugin: create_register_callback:
c
alloc failed.");
return (-1);
}
return (-1);
}
- memset (cf, 0, sizeof (*cf));
cf->cf_callback = callback;
if (ud == NULL)
cf->cf_callback = callback;
if (ud == NULL)
@@
-1244,14
+1243,13
@@
int plugin_register_read (const char *name,
read_func_t *rf;
int status;
read_func_t *rf;
int status;
- rf =
malloc (
sizeof (*rf));
+ rf =
calloc (1,
sizeof (*rf));
if (rf == NULL)
{
if (rf == NULL)
{
- ERROR ("plugin_register_read:
m
alloc failed.");
+ ERROR ("plugin_register_read:
c
alloc failed.");
return (ENOMEM);
}
return (ENOMEM);
}
- memset (rf, 0, sizeof (read_func_t));
rf->rf_callback = (void *) callback;
rf->rf_udata.data = NULL;
rf->rf_udata.free_func = NULL;
rf->rf_callback = (void *) callback;
rf->rf_udata.data = NULL;
rf->rf_udata.free_func = NULL;
@@
-1278,14
+1276,13
@@
int plugin_register_complex_read (const char *group, const char *name,
read_func_t *rf;
int status;
read_func_t *rf;
int status;
- rf =
malloc (
sizeof (*rf));
+ rf =
calloc (1,
sizeof (*rf));
if (rf == NULL)
{
if (rf == NULL)
{
- ERROR ("plugin_register_complex_read:
m
alloc failed.");
+ ERROR ("plugin_register_complex_read:
c
alloc failed.");
return (ENOMEM);
}
return (ENOMEM);
}
- memset (rf, 0, sizeof (read_func_t));
rf->rf_callback = (void *) callback;
if (group != NULL)
sstrncpy (rf->rf_group, group, sizeof (rf->rf_group));
rf->rf_callback = (void *) callback;
if (group != NULL)
sstrncpy (rf->rf_group, group, sizeof (rf->rf_group));
@@
-1351,7
+1348,7
@@
static char *plugin_flush_callback_name (const char *name)
prefix_size = strlen(flush_prefix);
name_size = strlen(name);
prefix_size = strlen(flush_prefix);
name_size = strlen(name);
- flush_name = malloc (
sizeof(char) * (name_size + prefix_size + 1)
);
+ flush_name = malloc (
name_size + prefix_size + 1
);
if (flush_name == NULL)
{
ERROR ("plugin_flush_callback_name: malloc failed.");
if (flush_name == NULL)
{
ERROR ("plugin_flush_callback_name: malloc failed.");
@@
-1384,7
+1381,7
@@
int plugin_register_flush (const char *name,
if (flush_name == NULL)
return (-1);
if (flush_name == NULL)
return (-1);
- cb = malloc(sizeof
(flush_callback_t
));
+ cb = malloc(sizeof
(*cb
));
if (cb == NULL)
{
ERROR ("plugin_register_flush: malloc failed.");
if (cb == NULL)
{
ERROR ("plugin_register_flush: malloc failed.");
@@
-1477,12
+1474,12
@@
int plugin_register_data_set (const data_set_t *ds)
return (-1);
}
return (-1);
}
- ds_copy =
(data_set_t *) malloc (sizeof (data_set_t
));
+ ds_copy =
malloc (sizeof (*ds_copy
));
if (ds_copy == NULL)
return (-1);
memcpy(ds_copy, ds, sizeof (data_set_t));
if (ds_copy == NULL)
return (-1);
memcpy(ds_copy, ds, sizeof (data_set_t));
- ds_copy->ds =
(data_source_t *) malloc (sizeof (data_source_t
)
+ ds_copy->ds =
malloc (sizeof (*ds_copy->ds
)
* ds->ds_num);
if (ds_copy->ds == NULL)
{
* ds->ds_num);
if (ds_copy->ds == NULL)
{
@@
-1693,11
+1690,12
@@
int plugin_unregister_notification (const char *name)
return (plugin_unregister (list_notification, name));
}
return (plugin_unregister (list_notification, name));
}
-
void
plugin_init_all (void)
+
int
plugin_init_all (void)
{
char const *chain_name;
llentry_t *le;
int status;
{
char const *chain_name;
llentry_t *le;
int status;
+ int ret = 0;
/* Init the value cache */
uc_init ();
/* Init the value cache */
uc_init ();
@@
-1742,7
+1740,7
@@
void plugin_init_all (void)
}
if ((list_init == NULL) && (read_heap == NULL))
}
if ((list_init == NULL) && (read_heap == NULL))
- return;
+ return
ret
;
/* Calling all init callbacks before checking if read callbacks
* are available allows the init callbacks to register the read
/* Calling all init callbacks before checking if read callbacks
* are available allows the init callbacks to register the read
@@
-1771,6
+1769,7
@@
void plugin_init_all (void)
* handling themselves. */
/* FIXME: Unload _all_ functions */
plugin_unregister_read (le->key);
* handling themselves. */
/* FIXME: Unload _all_ functions */
plugin_unregister_read (le->key);
+ ret = -1;
}
le = le->next;
}
le = le->next;
@@
-1792,6
+1791,7
@@
void plugin_init_all (void)
if (num != -1)
start_read_threads ((num > 0) ? num : 5);
}
if (num != -1)
start_read_threads ((num > 0) ? num : 5);
}
+ return ret;
} /* void plugin_init_all */
/* TODO: Rename this function. */
} /* void plugin_init_all */
/* TODO: Rename this function. */
@@
-1975,9
+1975,10
@@
int plugin_flush (const char *plugin, cdtime_t timeout, const char *identifier)
return (0);
} /* int plugin_flush */
return (0);
} /* int plugin_flush */
-
void
plugin_shutdown_all (void)
+
int
plugin_shutdown_all (void)
{
llentry_t *le;
{
llentry_t *le;
+ int ret = 0; // Assume success.
stop_read_threads ();
stop_read_threads ();
@@
-2014,7
+2015,8
@@
void plugin_shutdown_all (void)
* after callback returns. */
le = le->next;
* after callback returns. */
le = le->next;
- (*callback) ();
+ if ((*callback) () != 0)
+ ret = -1;
plugin_set_ctx (old_ctx);
}
plugin_set_ctx (old_ctx);
}
@@
-2036,6
+2038,7
@@
void plugin_shutdown_all (void)
plugin_free_loaded ();
plugin_free_data_sets ();
plugin_free_loaded ();
plugin_free_data_sets ();
+ return (ret);
} /* void plugin_shutdown_all */
int plugin_dispatch_missing (const value_list_t *vl) /* {{{ */
} /* void plugin_shutdown_all */
int plugin_dispatch_missing (const value_list_t *vl) /* {{{ */
@@
-2091,8
+2094,10
@@
static int plugin_dispatch_values_internal (value_list_t *vl)
int free_meta_data = 0;
int free_meta_data = 0;
- if ((vl == NULL) || (vl->type[0] == 0)
- || (vl->values == NULL) || (vl->values_len < 1))
+ assert(vl);
+ assert(vl->plugin);
+
+ if (vl->type[0] == 0 || vl->values == NULL || vl->values_len < 1)
{
ERROR ("plugin_dispatch_values: Invalid value list "
"from plugin %s.", vl->plugin);
{
ERROR ("plugin_dispatch_values: Invalid value list "
"from plugin %s.", vl->plugin);
@@
-2357,7
+2362,7
@@
int plugin_dispatch_multivalue (value_list_t const *template, /* {{{ */
assert (template->values_len == 1);
assert (template->values_len == 1);
- /* Calculate sum for Gauge to calculate percent if needed */
+
/* Calculate sum for Gauge to calculate percent if needed */
if (DS_TYPE_GAUGE == store_type) {
va_start (ap, store_type);
while (42)
if (DS_TYPE_GAUGE == store_type) {
va_start (ap, store_type);
while (42)
@@
-2578,13
+2583,12
@@
static int plugin_notification_meta_add (notification_t *n,
return (-1);
}
return (-1);
}
- meta =
(notification_meta_t *) malloc (sizeof (notification_meta_t
));
+ meta =
calloc (1, sizeof (*meta
));
if (meta == NULL)
{
if (meta == NULL)
{
- ERROR ("plugin_notification_meta_add:
m
alloc failed.");
+ ERROR ("plugin_notification_meta_add:
c
alloc failed.");
return (-1);
}
return (-1);
}
- memset (meta, 0, sizeof (notification_meta_t));
sstrncpy (meta->name, name, sizeof (meta->name));
meta->type = type;
sstrncpy (meta->name, name, sizeof (meta->name));
meta->type = type;