diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-02-10 14:11:19 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-08-08 15:07:42 +0200 |
commit | a9f169f699c4ec297641656b6b1d2b3f737b88bd (patch) | |
tree | 88d6b506f7893ea067a47686632bd3720e0d202f /src/libstrongswan/plugins/plugin_loader.c | |
parent | 4e98ca18003964f2511d2ba8258c40f9282535c1 (diff) | |
download | strongswan-a9f169f699c4ec297641656b6b1d2b3f737b88bd.tar.bz2 strongswan-a9f169f699c4ec297641656b6b1d2b3f737b88bd.tar.xz |
Don't require PLUGINDIR to be defined.
If it is not available, we just load monolithically built plugins.
Diffstat (limited to 'src/libstrongswan/plugins/plugin_loader.c')
-rw-r--r-- | src/libstrongswan/plugins/plugin_loader.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/libstrongswan/plugins/plugin_loader.c b/src/libstrongswan/plugins/plugin_loader.c index d5777e35b..95a0bfc02 100644 --- a/src/libstrongswan/plugins/plugin_loader.c +++ b/src/libstrongswan/plugins/plugin_loader.c @@ -250,8 +250,11 @@ static bool load_plugin(private_plugin_loader_t *this, char *name, char *file, this->plugins->insert_last(this->plugins, entry); return TRUE; case NOT_FOUND: - /* try to load the plugin from a file */ - break; + if (file) + { /* try to load the plugin from a file */ + break; + } + /* fall-through */ default: return FALSE; } @@ -651,16 +654,18 @@ METHOD(plugin_loader_t, load_plugins, bool, char *token; bool critical_failed = FALSE; +#ifdef PLUGINDIR if (path == NULL) { path = PLUGINDIR; } +#endif /* PLUGINDIR */ enumerator = enumerator_create_token(list, " ", " "); while (!critical_failed && enumerator->enumerate(enumerator, &token)) { bool critical = FALSE; - char file[PATH_MAX]; + char buf[PATH_MAX], *file = NULL; int len; token = strdup(token); @@ -675,10 +680,14 @@ METHOD(plugin_loader_t, load_plugins, bool, free(token); continue; } - if (snprintf(file, sizeof(file), "%s/libstrongswan-%s.so", - path, token) >= sizeof(file)) + if (path) { - return FALSE; + if (snprintf(buf, sizeof(buf), "%s/libstrongswan-%s.so", + path, token) >= sizeof(buf)) + { + return FALSE; + } + file = buf; } if (!load_plugin(this, token, file, critical) && critical) { |