summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/plugin.h10
-rw-r--r--src/plugin.c2
2 files changed, 11 insertions, 1 deletions
diff --git a/include/plugin.h b/include/plugin.h
index 4b9d5407..74ac4c2a 100644
--- a/include/plugin.h
+++ b/include/plugin.h
@@ -23,6 +23,7 @@
#define __CONNMAN_PLUGIN_H
#include <connman/version.h>
+#include <connman/log.h>
#ifdef __cplusplus
extern "C" {
@@ -50,6 +51,8 @@ struct connman_plugin_desc {
int priority;
int (*init) (void);
void (*exit) (void);
+ void *debug_start;
+ void *debug_stop;
};
/**
@@ -85,10 +88,15 @@ struct connman_plugin_desc {
};
#else
#define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
+ extern struct connman_debug_desc __start___debug[] \
+ __attribute__ ((visibility("hidden"))); \
+ extern struct connman_debug_desc __stop___debug[] \
+ __attribute__ ((visibility("hidden"))); \
extern struct connman_plugin_desc connman_plugin_desc \
__attribute__ ((visibility("default"))); \
struct connman_plugin_desc connman_plugin_desc = { \
- #name, description, version, priority, init, exit \
+ #name, description, version, priority, init, exit, \
+ __start___debug, __stop___debug \
};
#endif
diff --git a/src/plugin.c b/src/plugin.c
index 3f001d8b..9d990b85 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -80,6 +80,8 @@ static gboolean add_plugin(void *handle, struct connman_plugin_desc *desc)
plugin->active = FALSE;
plugin->desc = desc;
+ __connman_log_enable(desc->debug_start, desc->debug_stop);
+
plugins = g_slist_insert_sorted(plugins, plugin, compare_priority);
return TRUE;