From: Tobias Brunner Date: Wed, 27 Jun 2012 09:27:36 +0000 (+0200) Subject: Use static plugin features in libcharon to define essential dependencies X-Git-Tag: 5.0.0~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa54ecef44381727f411813c31d75050a9f43aaf;p=thirdparty%2Fstrongswan.git Use static plugin features in libcharon to define essential dependencies --- diff --git a/src/charon-nm/nm/nm_backend.c b/src/charon-nm/nm/nm_backend.c index f8ed23ef16..de9bf27b7b 100644 --- a/src/charon-nm/nm/nm_backend.c +++ b/src/charon-nm/nm/nm_backend.c @@ -167,6 +167,7 @@ void nm_backend_register() static plugin_feature_t features[] = { PLUGIN_CALLBACK((plugin_feature_callback_t)nm_backend_cb, NULL), PLUGIN_PROVIDE(CUSTOM, "NetworkManager backend"), + PLUGIN_DEPENDS(CUSTOM, "libcharon"), }; lib->plugins->add_static_features(lib->plugins, "nm-backend", features, countof(features), TRUE); diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c index 8a4b3906f5..525c987ab7 100644 --- a/src/libcharon/daemon.c +++ b/src/libcharon/daemon.c @@ -32,7 +32,7 @@ #include "daemon.h" #include -#include +#include #include #include #include @@ -213,6 +213,15 @@ METHOD(daemon_t, start, void, METHOD(daemon_t, initialize, bool, private_daemon_t *this, char *plugins) { + static plugin_feature_t features[] = { + PLUGIN_PROVIDE(CUSTOM, "libcharon"), + PLUGIN_DEPENDS(HASHER, HASH_SHA1), + PLUGIN_DEPENDS(RNG, RNG_STRONG), + PLUGIN_DEPENDS(NONCE_GEN), + }; + lib->plugins->add_static_features(lib->plugins, charon->name, features, + countof(features), TRUE); + /* load plugins, further infrastructure may need it */ if (!lib->plugins->load(lib->plugins, NULL, plugins)) {