summaryrefslogtreecommitdiff
path: root/src/plugin.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-04-27 21:41:52 -0700
committerMarcel Holtmann <marcel@holtmann.org>2009-04-27 21:41:52 -0700
commite3fafb1cb55307f6c5f118872d72abdd03011cbd (patch)
tree910a28296e4769ae2e14f465b7123611bf10f788 /src/plugin.c
parent5a5c569add1d4cc9eb8aaf8be40eac2bf8c97bd3 (diff)
downloadconnman-e3fafb1cb55307f6c5f118872d72abdd03011cbd.tar.gz
connman-e3fafb1cb55307f6c5f118872d72abdd03011cbd.tar.bz2
connman-e3fafb1cb55307f6c5f118872d72abdd03011cbd.zip
Add infrastructure for built-in plugins
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c9
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);
}