diff --git a/obexd/plugins/filesystem.c b/obexd/plugins/filesystem.c
index 4a06c98..080b771 100644
--- a/obexd/plugins/filesystem.c
+++ b/obexd/plugins/filesystem.c
obex_mime_type_driver_unregister(&file);
}
-OBEX_PLUGIN_DEFINE("filesystem", filesystem_init, filesystem_exit)
+OBEX_PLUGIN_DEFINE(filesystem, filesystem_init, filesystem_exit)
diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c
index 82f16f2..0736095 100644
--- a/obexd/plugins/ftp.c
+++ b/obexd/plugins/ftp.c
obex_service_driver_unregister(&pcsuite);
}
-OBEX_PLUGIN_DEFINE("ftp", ftp_init, ftp_exit)
+OBEX_PLUGIN_DEFINE(ftp, ftp_init, ftp_exit)
diff --git a/obexd/plugins/opp.c b/obexd/plugins/opp.c
index 7d5a735..64de753 100644
--- a/obexd/plugins/opp.c
+++ b/obexd/plugins/opp.c
obex_service_driver_unregister(&driver);
}
-OBEX_PLUGIN_DEFINE("opp", opp_init, opp_exit)
+OBEX_PLUGIN_DEFINE(opp, opp_init, opp_exit)
diff --git a/obexd/src/plugin.c b/obexd/src/plugin.c
index b4c4a11..7131ada 100644
--- a/obexd/src/plugin.c
+++ b/obexd/src/plugin.c
return TRUE;
}
+#include "builtin.h"
+
gboolean plugin_init(void)
{
GDir *dir;
const gchar *file;
+ unsigned int i;
if (strlen(PLUGINDIR) == 0)
return FALSE;
+ debug("Loading builtin plugins");
+
+ for (i = 0; __obex_builtin[i]; i++)
+ add_plugin(NULL, __obex_builtin[i]);
+
debug("Loading plugins %s", PLUGINDIR);
dir = g_dir_open(PLUGINDIR, 0, NULL);
if (plugin->desc->exit)
plugin->desc->exit();
- dlclose(plugin->handle);
+ if (plugin->handle != NULL)
+ dlclose(plugin->handle);
g_free(plugin);
}
diff --git a/obexd/src/plugin.h b/obexd/src/plugin.h
index 086fa59..0439cd1 100644
--- a/obexd/src/plugin.h
+++ b/obexd/src/plugin.h
void (*exit) (void);
};
+#ifdef OBEX_PLUGIN_BUILTIN
+#define OBEX_PLUGIN_DEFINE(name, init, exit) \
+ struct obex_plugin_desc __obex_builtin_ ## name = { \
+ #name, init, exit \
+ };
+#else
#define OBEX_PLUGIN_DEFINE(name,init,exit) \
extern struct obex_plugin_desc obex_plugin_desc \
__attribute__ ((visibility("default"))); \
struct obex_plugin_desc obex_plugin_desc = { \
name, init, exit \
};
+#endif