diff --git a/src/core/plugin.c b/src/core/plugin.c
index 5c9a233eadc873440fc5c6ce54a1937f4c160db3..7f5883aa20cefa0a4e1e07afb8b89a3afe54a598 100644 (file)
--- a/src/core/plugin.c
+++ b/src/core/plugin.c
#include "sysdb.h"
#include "core/plugin.h"
+#include "utils/error.h"
#include "utils/llist.h"
#include "utils/string.h"
#include "utils/time.h"
assert(obj);
if (sdb_plugin_find_by_name(*list, name)) {
- fprintf(stderr, "plugin: %s callback '%s' has already been "
- "registered. Ignoring newly registered version.\n",
- type, name);
+ sdb_error_set(SDB_LOG_WARNING, "plugin: %s callback '%s' "
+ "has already been registered. Ignoring newly "
+ "registered version.\n", type, name);
return -1;
}
/* pass control to the list */
sdb_object_deref(obj);
- fprintf(stderr, "plugin: Registered %s callback '%s'.\n", type, name);
+ sdb_error_set(SDB_LOG_INFO, "plugin: Registered %s callback '%s'.\n",
+ type, name);
return 0;
} /* sdb_plugin_add_callback */
if (access(filename, R_OK)) {
char errbuf[1024];
- fprintf(stderr, "plugin: Failed to load plugin '%s': %s\n",
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to load plugin '%s': %s\n",
name, sdb_strerror(errno, errbuf, sizeof(errbuf)));
return -1;
}
lh = lt_dlopen(filename);
if (! lh) {
- fprintf(stderr, "plugin: Failed to load plugin '%s': %s\n"
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to load plugin '%s': %s\n"
"The most common cause for this problem are missing "
"dependencies.\n", name, lt_dlerror());
return -1;
mod_init = (int (*)(sdb_plugin_info_t *))lt_dlsym(lh, "sdb_module_init");
if (! mod_init) {
- fprintf(stderr, "plugin: Failed to load plugin '%s': "
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to load plugin '%s': "
"could not find symbol 'sdb_module_init'\n", name);
return -1;
}
status = mod_init(&plugin_info);
if (status) {
- fprintf(stderr, "plugin: Failed to initialize plugin '%s'\n", name);
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to initialize "
+ "plugin '%s'\n", name);
return -1;
}
/* compare minor version */
if ((plugin_info.version < 0)
|| ((int)(plugin_info.version / 100) != (int)(SDB_VERSION / 100)))
- fprintf(stderr, "plugin: WARNING: version of plugin '%s' (%i.%i.%i) "
- "does not match our version (%i.%i.%i); "
- "this might cause problems\n",
+ sdb_error_set(SDB_LOG_WARNING, "plugin: WARNING: version of "
+ "plugin '%s' (%i.%i.%i) does not match our version "
+ "(%i.%i.%i); this might cause problems\n",
name, SDB_VERSION_DECODE(plugin_info.version),
SDB_VERSION_DECODE(SDB_VERSION));
- fprintf(stderr, "plugin: Successfully loaded "
+ sdb_error_set(SDB_LOG_INFO, "plugin: Successfully loaded "
"plugin '%s' v%i (%s)\n\t%s\n",
plugin_info.name, plugin_info.plugin_version,
plugin_info.description, plugin_info.copyright);
@@ -435,8 +438,8 @@ sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback
if (! (SDB_PLUGIN_CCB(obj)->ccb_next_update = sdb_gettime())) {
char errbuf[1024];
- fprintf(stderr, "plugin: Failed to determine current time: %s\n",
- sdb_strerror(errno, errbuf, sizeof(errbuf)));
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to determine current "
+ "time: %s\n", sdb_strerror(errno, errbuf, sizeof(errbuf)));
sdb_object_deref(obj);
return -1;
}
@@ -450,7 +453,7 @@ sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback
/* pass control to the list */
sdb_object_deref(obj);
- fprintf(stderr, "plugin: Registered collector callback '%s' "
+ sdb_error_set(SDB_LOG_INFO, "plugin: Registered collector callback '%s' "
"(interval = %.3fs).\n", name,
SDB_TIME_TO_DOUBLE(SDB_PLUGIN_CCB(obj)->ccb_interval));
return 0;
plugin = sdb_plugin_find_by_name(config_list, name);
if (! plugin) {
- fprintf(stderr, "plugin: Plugin '%s' did not register "
+ /* XXX: check if any such plugin has been loaded */
+ sdb_error_set(SDB_LOG_ERR, "plugin: Plugin '%s' did not register "
"a config callback.\n", name);
errno = ENOENT;
return -1;
if (! (now = sdb_gettime())) {
char errbuf[1024];
- fprintf(stderr, "plugin: Failed to determine current time: %s\n",
- sdb_strerror(errno, errbuf, sizeof(errbuf)));
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to determine current "
+ "time: %s\n", sdb_strerror(errno, errbuf, sizeof(errbuf)));
now = SDB_PLUGIN_CCB(obj)->ccb_next_update;
}
while (loop->do_loop && sdb_sleep(interval, &interval)) {
if (errno != EINTR) {
char errbuf[1024];
- fprintf(stderr, "plugin: Failed to sleep: %s\n",
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to sleep: %s\n",
sdb_strerror(errno, errbuf, sizeof(errbuf)));
return -1;
}
if (! interval)
interval = loop->default_interval;
if (! interval) {
- fprintf(stderr, "plugin: No interval configured "
+ sdb_error_set(SDB_LOG_WARNING, "plugin: No interval configured "
"for plugin '%s'; skipping any further "
"iterations.\n", SDB_PLUGIN_CCB(obj)->ccb_name);
sdb_object_deref(obj);
if (! (now = sdb_gettime())) {
char errbuf[1024];
- fprintf(stderr, "plugin: Failed to determine current time: %s\n",
- sdb_strerror(errno, errbuf, sizeof(errbuf)));
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to determine current "
+ "time: %s\n", sdb_strerror(errno, errbuf, sizeof(errbuf)));
now = SDB_PLUGIN_CCB(obj)->ccb_next_update;
}
if (now > SDB_PLUGIN_CCB(obj)->ccb_next_update) {
- fprintf(stderr, "plugin: Plugin '%s' took too long; "
- "skipping iterations to keep up.\n",
+ sdb_error_set(SDB_LOG_WARNING, "plugin: Plugin '%s' took too "
+ "long; skipping iterations to keep up.\n",
SDB_PLUGIN_CCB(obj)->ccb_name);
SDB_PLUGIN_CCB(obj)->ccb_next_update = now;
}
if (sdb_llist_insert_sorted(collector_list, obj,
sdb_plugin_cmp_next_update)) {
- fprintf(stderr, "plugin: Failed to re-insert "
- "plugin '%s' into collector list.\n",
+ sdb_error_set(SDB_LOG_ERR, "plugin: Failed to re-insert "
+ "plugin '%s' into collector list. Unable to further "
+ "use the plugin.\n",
SDB_PLUGIN_CCB(obj)->ccb_name);
sdb_object_deref(obj);
return -1;