X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fdaemon%2Fplugin.c;h=3a2e28789270d8b011b6bb2f6d0057b55d1956f8;hb=d54f3b1640ee23b5213ac870ca3de558f54e8247;hp=fa78fa024af63ab9698411175acc45699b8b0f11;hpb=01e2d29ebc5dec07daab935da3fcee5bb9c7d620;p=collectd.git diff --git a/src/daemon/plugin.c b/src/daemon/plugin.c index fa78fa02..3a2e2878 100644 --- a/src/daemon/plugin.c +++ b/src/daemon/plugin.c @@ -1690,11 +1690,12 @@ int plugin_unregister_notification (const char *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; + int ret = 0; /* Init the value cache */ uc_init (); @@ -1739,7 +1740,7 @@ void plugin_init_all (void) } 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 @@ -1768,6 +1769,7 @@ void plugin_init_all (void) * handling themselves. */ /* FIXME: Unload _all_ functions */ plugin_unregister_read (le->key); + ret = -1; } le = le->next; @@ -1789,6 +1791,7 @@ void plugin_init_all (void) if (num != -1) start_read_threads ((num > 0) ? num : 5); } + return ret; } /* void plugin_init_all */ /* TODO: Rename this function. */ @@ -1972,9 +1975,10 @@ int plugin_flush (const char *plugin, cdtime_t timeout, const char *identifier) return (0); } /* int plugin_flush */ -void plugin_shutdown_all (void) +int plugin_shutdown_all (void) { llentry_t *le; + int ret = 0; // Assume success. stop_read_threads (); @@ -2011,7 +2015,8 @@ void plugin_shutdown_all (void) * after callback returns. */ le = le->next; - (*callback) (); + if ((*callback) () != 0) + ret = -1; plugin_set_ctx (old_ctx); } @@ -2033,6 +2038,7 @@ void plugin_shutdown_all (void) plugin_free_loaded (); plugin_free_data_sets (); + return (ret); } /* void plugin_shutdown_all */ int plugin_dispatch_missing (const value_list_t *vl) /* {{{ */