diff options
author | Martin Willi <martin@revosec.ch> | 2014-07-17 17:47:42 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2014-09-22 13:40:39 +0200 |
commit | 9e783f6e89c8f95af3924d0243ddc206e7446fe9 (patch) | |
tree | 300105de7b1042326084b66b24c3542535f25e57 | |
parent | 0bf2abf182b325d4ce20e0fe41a32e501772ee04 (diff) | |
download | strongswan-9e783f6e89c8f95af3924d0243ddc206e7446fe9.tar.bz2 strongswan-9e783f6e89c8f95af3924d0243ddc206e7446fe9.tar.xz |
library: Store the used root strongswan.conf configuration
-rw-r--r-- | src/libstrongswan/library.c | 14 | ||||
-rw-r--r-- | src/libstrongswan/library.h | 5 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/libstrongswan/library.c b/src/libstrongswan/library.c index 4d2b3eb68..715f5bc43 100644 --- a/src/libstrongswan/library.c +++ b/src/libstrongswan/library.c @@ -29,6 +29,10 @@ #define CHECKSUM_LIBRARY IPSEC_LIB_DIR"/libchecksum.so" +#ifndef STRONGSWAN_CONF +#define STRONGSWAN_CONF NULL +#endif + typedef struct private_library_t private_library_t; /** @@ -149,6 +153,7 @@ void library_deinit() utils_deinit(); threads_deinit(); + free(this->public.conf); free((void*)this->public.ns); free(this); lib = NULL; @@ -258,6 +263,7 @@ bool library_init(char *settings, const char *namespace) .get = _get, .set = _set, .ns = strdup(namespace ?: "libstrongswan"), + .conf = strdupnull(settings ?: STRONGSWAN_CONF), }, .ref = 1, ); @@ -304,13 +310,7 @@ bool library_init(char *settings, const char *namespace) this->objects = hashtable_create((hashtable_hash_t)hash, (hashtable_equals_t)equals, 4); -#ifdef STRONGSWAN_CONF - if (!settings) - { - settings = STRONGSWAN_CONF; - } -#endif - this->public.settings = settings_create(settings); + this->public.settings = settings_create(this->public.conf); /* all namespace settings may fall back to libstrongswan */ lib->settings->add_fallback(lib->settings, lib->ns, "libstrongswan"); diff --git a/src/libstrongswan/library.h b/src/libstrongswan/library.h index 37a83fa2f..2bd5e3523 100644 --- a/src/libstrongswan/library.h +++ b/src/libstrongswan/library.h @@ -147,6 +147,11 @@ struct library_t { const char *ns; /** + * Main configuration file passed to library_init(), the default, or NULL + */ + char *conf; + + /** * Printf hook registering facility */ printf_hook_t *printf_hook; |