summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5ef6f70)
raw | patch | inline | side by side (parent: 5ef6f70)
author | Sebastian Harl <sh@tokkee.org> | |
Sat, 28 Jun 2014 07:19:49 +0000 (09:19 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Sat, 28 Jun 2014 07:19:49 +0000 (09:19 +0200) |
index 3a41fdf65e0e7d628d9a7e032412fb8f6f9e8649..21e1f8b2bda204183b3414b2668fafedda8b0eb4 100644 (file)
char *name = NULL;
char *socket_path = NULL;
- char cb_name[1024];
-
sdb_object_t *user_data;
sdb_unixsock_client_t *client;
return -1;
}
- snprintf(cb_name, sizeof(cb_name), "collectd::unixsock::%s", name);
- cb_name[sizeof(cb_name) - 1] = '\0';
-
client = sdb_unixsock_client_create(socket_path);
if (! client) {
char errbuf[1024];
return -1;
}
- sdb_plugin_register_init(cb_name, sdb_collectd_init, user_data);
- sdb_plugin_register_shutdown(cb_name, sdb_collectd_shutdown, user_data);
+ sdb_plugin_register_init(name, sdb_collectd_init, user_data);
+ sdb_plugin_register_shutdown(name, sdb_collectd_shutdown, user_data);
- sdb_plugin_register_collector(cb_name, sdb_collectd_collect,
+ sdb_plugin_register_collector(name, sdb_collectd_collect,
/* interval */ NULL, user_data);
/* pass control to the list */
index b6dc1a7d1d810a09ea7ddb4d830c67ff4f85f851..eb544b8b24bcd4e00717eaa7dea7b47eb6c7fc99 100644 (file)
char *name = NULL;
char *socket_path = NULL;
- char cb_name[1024];
-
sdb_object_t *user_data;
sdb_unixsock_client_t *client;
return -1;
}
- snprintf(cb_name, sizeof(cb_name), "mk-livestatus::%s", name);
- cb_name[sizeof(cb_name) - 1] = '\0';
-
client = sdb_unixsock_client_create(socket_path);
if (! client) {
char errbuf[1024];
return -1;
}
- sdb_plugin_register_init(cb_name, sdb_livestatus_init, user_data);
- sdb_plugin_register_shutdown(cb_name, sdb_livestatus_shutdown, user_data);
- sdb_plugin_register_collector(cb_name, sdb_livestatus_collect,
+ sdb_plugin_register_init(name, sdb_livestatus_init, user_data);
+ sdb_plugin_register_shutdown(name, sdb_livestatus_shutdown, user_data);
+ sdb_plugin_register_collector(name, sdb_livestatus_collect,
/* interval */ NULL, user_data);
/* pass control to the list */
index 409343fa1f0c33f449ccd969d4155654618e43b3..23d261bacf46baf7b3939f5718fe529c714f98d7 100644 (file)
sdb_puppet_stcfg_config_conn(oconfig_item_t *ci)
{
char *name = NULL;
- char cb_name[1024];
sdb_object_t *user_data;
sdb_dbi_client_t *client;
return -1;
}
- snprintf(cb_name, sizeof(cb_name), "puppet::storeconfigs::%s", name);
- cb_name[sizeof(cb_name) - 1] = '\0';
-
client = sdb_dbi_client_create(driver, database);
if (! client) {
char errbuf[1024];
return -1;
}
- sdb_plugin_register_init(cb_name, sdb_puppet_stcfg_init, user_data);
- sdb_plugin_register_shutdown(cb_name, sdb_puppet_stcfg_shutdown,
+ sdb_plugin_register_init(name, sdb_puppet_stcfg_init, user_data);
+ sdb_plugin_register_shutdown(name, sdb_puppet_stcfg_shutdown,
user_data);
- sdb_plugin_register_collector(cb_name, sdb_puppet_stcfg_collect,
+ sdb_plugin_register_collector(name, sdb_puppet_stcfg_collect,
/* interval */ NULL, user_data);
/* pass control to the list */
diff --git a/src/core/plugin.c b/src/core/plugin.c
index 282a5213a45e98cae33ae3c1fde14484972d972a..32966deabcf8042dbf58e120016419833a05dde0 100644 (file)
--- a/src/core/plugin.c
+++ b/src/core/plugin.c
return 0;
} /* module_load */
+static char *
+plugin_get_name(const char *name, char *buf, size_t bufsize)
+{
+ ctx_t *ctx = ctx_get();
+
+ if (ctx)
+ snprintf(buf, bufsize, "%s::%s", ctx->info.plugin_name, name);
+ else
+ snprintf(buf, bufsize, "core::%s", name);
+ return buf;
+} /* plugin_get_name */
+
static int
plugin_add_callback(sdb_llist_t **list, const char *type,
const char *name, void *callback, sdb_object_t *user_data)
sdb_plugin_register_init(const char *name, sdb_plugin_init_cb callback,
sdb_object_t *user_data)
{
- return plugin_add_callback(&init_list, "init", name,
+ char cb_name[1024];
+ return plugin_add_callback(&init_list, "init",
+ plugin_get_name(name, cb_name, sizeof(cb_name)),
(void *)callback, user_data);
} /* sdb_plugin_register_init */
sdb_plugin_register_shutdown(const char *name, sdb_plugin_shutdown_cb callback,
sdb_object_t *user_data)
{
- return plugin_add_callback(&shutdown_list, "shutdown", name,
+ char cb_name[1024];
+ return plugin_add_callback(&shutdown_list, "shutdown",
+ plugin_get_name(name, cb_name, sizeof(cb_name)),
(void *)callback, user_data);
} /* sdb_plugin_register_shutdown */
sdb_plugin_register_log(const char *name, sdb_plugin_log_cb callback,
sdb_object_t *user_data)
{
- return plugin_add_callback(&log_list, "log", name, (void *)callback,
- user_data);
+ char cb_name[1024];
+ return plugin_add_callback(&log_list, "log",
+ plugin_get_name(name, cb_name, sizeof(cb_name)),
+ callback, user_data);
} /* sdb_plugin_register_log */
int
sdb_plugin_register_cname(const char *name, sdb_plugin_cname_cb callback,
sdb_object_t *user_data)
{
- return plugin_add_callback(&cname_list, "cname", name, (void *)callback,
- user_data);
+ char cb_name[1024];
+ return plugin_add_callback(&cname_list, "cname",
+ plugin_get_name(name, cb_name, sizeof(cb_name)),
+ callback, user_data);
} /* sdb_plugin_register_cname */
int
sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback,
const sdb_time_t *interval, sdb_object_t *user_data)
{
+ char cb_name[1024];
sdb_object_t *obj;
if ((! name) || (! callback))
@@ -748,7 +769,9 @@ sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback
if (! collector_list)
return -1;
- obj = sdb_object_create(name, sdb_plugin_collector_cb_type,
+ plugin_get_name(name, cb_name, sizeof(cb_name));
+
+ obj = sdb_object_create(cb_name, sdb_plugin_collector_cb_type,
&collector_list, "collector", callback, user_data);
if (! obj)
return -1;
@@ -782,7 +805,7 @@ sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback
sdb_object_deref(obj);
sdb_log(SDB_LOG_INFO, "core: Registered collector callback '%s' "
- "(interval = %.3fs).", name,
+ "(interval = %.3fs).", cb_name,
SDB_TIME_TO_DOUBLE(SDB_PLUGIN_CCB(obj)->ccb_interval));
return 0;
} /* sdb_plugin_register_collector */
index 51d59051e5768ee5e73cb848b216876fadf1238c..bcf01ec411bd5d2dc7e3ab25d17a99f88edd7037 100644 (file)
* plugin callback functions:
* See the description of the respective register function for what arguments
* the callbacks expect.
+ *
+ * The specified name of callback functions is prepended with the plugin name
+ * before being registered with the core.
*/
typedef int (*sdb_plugin_config_cb)(oconfig_item_t *ci);
index 26b3500e004ad51ec8e636791659278e62a2b8a9..b35ebf1666e662984d1aea372f3fd802ef259c05 100644 (file)
--- a/src/plugins/cname/dns.c
+++ b/src/plugins/cname/dns.c
sdb_plugin_set_info(info, SDB_PLUGIN_INFO_VERSION, SDB_VERSION);
sdb_plugin_set_info(info, SDB_PLUGIN_INFO_PLUGIN_VERSION, SDB_VERSION);
- sdb_plugin_register_cname("cname::dns", sdb_dns_cname, NULL);
+ sdb_plugin_register_cname("main", sdb_dns_cname, NULL);
return 0;
} /* sdb_module_init */
diff --git a/src/plugins/syslog.c b/src/plugins/syslog.c
index a4875215055361dbdd950f01e74a7737654dc699..f9a285e98cd484bff8c36022a9fd427442567639 100644 (file)
--- a/src/plugins/syslog.c
+++ b/src/plugins/syslog.c
sdb_plugin_set_info(info, SDB_PLUGIN_INFO_VERSION, SDB_VERSION);
sdb_plugin_set_info(info, SDB_PLUGIN_INFO_PLUGIN_VERSION, SDB_VERSION);
- sdb_plugin_register_init("syslog", sdb_syslog_init, NULL);
- sdb_plugin_register_log("syslog", sdb_syslog_log, NULL);
- sdb_plugin_register_shutdown("syslog", sdb_syslog_shutdown, NULL);
+ sdb_plugin_register_init("main", sdb_syslog_init, NULL);
+ sdb_plugin_register_log("main", sdb_syslog_log, NULL);
+ sdb_plugin_register_shutdown("main", sdb_syslog_shutdown, NULL);
return 0;
} /* sdb_module_init */
index 7e2b4a67dae3fc5e843a1eaf33cd307becc5762c..2573e64765543ee4c6cc2802250083d8ed362eec 100644 (file)
exit(1);
}
- sdb_plugin_register_init("mock::init", mock_init, user_data);
- sdb_plugin_register_shutdown("mock::shutdown", mock_shutdown, user_data);
- sdb_plugin_register_collector("mock::collect", mock_collect,
+ sdb_plugin_register_init("main", mock_init, user_data);
+ sdb_plugin_register_shutdown("main", mock_shutdown, user_data);
+ sdb_plugin_register_collector("main", mock_collect,
/* interval = */ NULL, user_data);
sdb_object_deref(user_data);