lib: Add global config namespace

This commit is contained in:
Tobias Brunner
2014-02-12 14:34:31 +01:00
parent 4f8bd6d404
commit 34d3bfcf14
38 changed files with 55 additions and 41 deletions
+3 -1
View File
@@ -145,6 +145,7 @@ void library_deinit()
threads_deinit();
backtrace_deinit();
free((void*)this->public.ns);
free(this);
lib = NULL;
}
@@ -234,7 +235,7 @@ static bool check_memwipe()
/*
* see header file
*/
bool library_init(char *settings)
bool library_init(char *settings, const char *namespace)
{
private_library_t *this;
printf_hook_t *pfh;
@@ -250,6 +251,7 @@ bool library_init(char *settings)
.public = {
.get = _get,
.set = _set,
.ns = strdup(namespace ?: "libstrongswan"),
},
.ref = 1,
);
+14 -2
View File
@@ -1,4 +1,5 @@
/*
* Copyright (C) 2010-2014 Tobias Brunner
* Copyright (C) 2008 Martin Willi
* Hochschule fuer Technik Rapperswil
*
@@ -139,6 +140,12 @@ struct library_t {
*/
bool (*set)(library_t *this, char *name, void *object);
/**
* Namespace used for settings etc. (i.e. the name of the binary that uses
* the library)
*/
const char *ns;
/**
* Printf hook registering facility
*/
@@ -239,12 +246,17 @@ struct library_t {
* Initialize library, creates "lib" instance.
*
* library_init() may be called multiple times in a single process, but each
* caller should call library_deinit() for each call to library_init().
* caller must call library_deinit() for each call to library_init().
*
* The settings and namespace arguments are only used on the first call.
*
* @param settings file to read settings from, may be NULL for default
* @param namespace name of the binary that uses the library, determines
* the first section name when reading config options.
* Defaults to libstrongswan if NULL.
* @return FALSE if integrity check failed
*/
bool library_init(char *settings);
bool library_init(char *settings, const char *namespace);
/**
* Deinitialize library, destroys "lib" instance.
+2 -2
View File
@@ -65,7 +65,7 @@ static array_t *load_suites(test_configuration_t configs[],
bool old = FALSE;
int i;
library_init(NULL);
library_init(NULL, "test-runner");
test_setup_handler();
@@ -178,7 +178,7 @@ static bool call_fixture(test_case_t *tcase, bool up)
*/
static bool pre_test(test_runner_init_t init)
{
library_init(NULL);
library_init(NULL, "test-runner");
/* use non-blocking RNG to generate keys fast */
lib->settings->set_default_str(lib->settings,