lib: Add global config namespace
This commit is contained in:
@@ -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,
|
||||
);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user