diff options
Diffstat (limited to 'src/plugin.c')
-rw-r--r-- | src/plugin.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugin.c b/src/plugin.c index 36e816bd..23caa0a8 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -74,15 +74,21 @@ static gboolean add_plugin(void *handle, struct connman_plugin_desc *desc) return TRUE; } +#include "builtin.h" + int __connman_plugin_init(const char *pattern, const char *exclude) { GSList *list; GDir *dir; const gchar *file; gchar *filename; + unsigned int i; DBG(""); + for (i = 0; __connman_builtin[i]; i++) + add_plugin(NULL, __connman_builtin[i]); + dir = g_dir_open(PLUGINDIR, 0, NULL); if (dir != NULL) { while ((file = g_dir_read_name(dir)) != NULL) { @@ -157,7 +163,8 @@ void __connman_plugin_cleanup(void) if (plugin->active == TRUE && plugin->desc->exit) plugin->desc->exit(); - dlclose(plugin->handle); + if (plugin->handle != NULL) + dlclose(plugin->handle); g_free(plugin); } |