From: Martin Willi Date: Thu, 17 Jul 2014 15:47:42 +0000 (+0200) Subject: library: Store the used root strongswan.conf configuration X-Git-Tag: 5.2.1dr1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e783f6e89c8f95af3924d0243ddc206e7446fe9;p=thirdparty%2Fstrongswan.git library: Store the used root strongswan.conf configuration --- diff --git a/src/libstrongswan/library.c b/src/libstrongswan/library.c index 4d2b3eb689..715f5bc434 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 37a83fa2fd..2bd5e3523d 100644 --- a/src/libstrongswan/library.h +++ b/src/libstrongswan/library.h @@ -146,6 +146,11 @@ struct library_t { */ const char *ns; + /** + * Main configuration file passed to library_init(), the default, or NULL + */ + char *conf; + /** * Printf hook registering facility */