diff options
Diffstat (limited to 'src/libstrongswan')
-rw-r--r-- | src/libstrongswan/library.c | 7 | ||||
-rw-r--r-- | src/libstrongswan/settings/settings.c | 8 | ||||
-rw-r--r-- | src/libstrongswan/settings/settings.h | 4 |
3 files changed, 12 insertions, 7 deletions
diff --git a/src/libstrongswan/library.c b/src/libstrongswan/library.c index c5bb4cd93..f152a8c1f 100644 --- a/src/libstrongswan/library.c +++ b/src/libstrongswan/library.c @@ -298,6 +298,13 @@ 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); /* all namespace settings may fall back to libstrongswan */ lib->settings->add_fallback(lib->settings, lib->ns, "libstrongswan"); diff --git a/src/libstrongswan/settings/settings.c b/src/libstrongswan/settings/settings.c index e467d8821..6c69782ec 100644 --- a/src/libstrongswan/settings/settings.c +++ b/src/libstrongswan/settings/settings.c @@ -839,13 +839,9 @@ static bool load_files_internal(private_settings_t *this, section_t *parent, { section_t *section; - if (pattern == NULL) - { -#ifdef STRONGSWAN_CONF - pattern = STRONGSWAN_CONF; -#else + if (pattern == NULL || !pattern[0]) + { /* TODO: Clear parent if merge is FALSE? */ return FALSE; -#endif } section = settings_section_create(NULL); diff --git a/src/libstrongswan/settings/settings.h b/src/libstrongswan/settings/settings.h index 23f3a8ead..3b87c8feb 100644 --- a/src/libstrongswan/settings/settings.h +++ b/src/libstrongswan/settings/settings.h @@ -343,7 +343,9 @@ struct settings_t { /** * Load settings from a file. * - * @param file file to read settings from, NULL for default + * @note If parsing the file fails the object is still created. + * + * @param file optional file to read settings from * @return settings object */ settings_t *settings_create(char *file); |