diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-11-05 17:43:20 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-11-06 10:31:07 +0100 |
commit | 8d2450d8b8f4ac88f6178c7a2bffda9abad606a7 (patch) | |
tree | fea30f9ee884a51f631ae92475dbff32c85a8c5a | |
parent | 09d0c9030ae92f80a24fd03f81a96887e7a17800 (diff) | |
download | strongswan-8d2450d8b8f4ac88f6178c7a2bffda9abad606a7.tar.bz2 strongswan-8d2450d8b8f4ac88f6178c7a2bffda9abad606a7.tar.xz |
plugin-loader: Convenience function added to add plugin dirs in build tree
-rw-r--r-- | src/libstrongswan/plugins/plugin_loader.c | 19 | ||||
-rw-r--r-- | src/libstrongswan/plugins/plugin_loader.h | 9 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/plugin_loader.c b/src/libstrongswan/plugins/plugin_loader.c index 5ed0a9b0f..c9043239b 100644 --- a/src/libstrongswan/plugins/plugin_loader.c +++ b/src/libstrongswan/plugins/plugin_loader.c @@ -1170,3 +1170,22 @@ plugin_loader_t *plugin_loader_create() return &this->public; } + +/* + * See header + */ +void plugin_loader_add_plugindirs(char *basedir, char *plugins) +{ + enumerator_t *enumerator; + char *name, path[PATH_MAX], dir[64]; + + enumerator = enumerator_create_token(plugins, " ", ""); + while (enumerator->enumerate(enumerator, &name)) + { + snprintf(dir, sizeof(dir), "%s", name); + translate(dir, "-", "_"); + snprintf(path, sizeof(path), "%s/%s/.libs", basedir, dir); + lib->plugins->add_path(lib->plugins, path); + } + enumerator->destroy(enumerator); +} diff --git a/src/libstrongswan/plugins/plugin_loader.h b/src/libstrongswan/plugins/plugin_loader.h index 285b33910..164360c30 100644 --- a/src/libstrongswan/plugins/plugin_loader.h +++ b/src/libstrongswan/plugins/plugin_loader.h @@ -146,4 +146,13 @@ struct plugin_loader_t { */ plugin_loader_t *plugin_loader_create(); +/** + * Convenience function to add plugin directories for the given plugins within + * the given base directory according to the conventions in the src/build tree. + * + * @param basedir base directory + * @param plugins space separated list of plugins + */ +void plugin_loader_add_plugindirs(char *basedir, char *plugins); + #endif /** PLUGIN_LOADER_H_ @}*/ |