From 9e783f6e89c8f95af3924d0243ddc206e7446fe9 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 17 Jul 2014 17:47:42 +0200 Subject: library: Store the used root strongswan.conf configuration --- src/libstrongswan/library.c | 14 +++++++------- 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 @@ -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 */ -- cgit v1.2.3