ctx.in = stdin;
ctx.out = stdout;
- library_init(NULL);
+ library_init(NULL, "aes-test");
atexit(library_deinit);
while (true)
int i = 0, limit = 0;
- library_init(NULL);
+ library_init(NULL, "crypt_burn");
lib->plugins->load(lib->plugins, PLUGINS);
atexit(library_deinit);
usage();
}
- library_init(NULL);
+ library_init(NULL, "dh_speed");
lib->plugins->load(lib->plugins, argv[1]);
atexit(library_deinit);
rr_set_t *rrset;
rr_t *rr;
- library_init(NULL);
+ library_init(NULL, "dnssec");
atexit(library_deinit);
dbg = dbg_dnssec;
{
chunk_t res;
- library_init(NULL);
+ library_init(NULL, "fetch");
atexit(library_deinit);
lib->plugins->load(lib->plugins, PLUGINS);
char buffer[1024];
int limit = 0, i = 0;
- library_init(NULL);
+ library_init(NULL, "hash_burn");
lib->plugins->load(lib->plugins, PLUGINS);
atexit(library_deinit);
char buf[8096];
int read;
- library_init(NULL);
+ library_init(NULL, "key2keyid");
lib->plugins->load(lib->plugins, PLUGINS);
atexit(library_deinit);
char buf[8096];
int read, n;
- library_init(NULL);
+ library_init(NULL, "keyid2sql");
lib->plugins->load(lib->plugins, PLUGINS);
atexit(library_deinit);
int sizes[16] = { 1, 13, 100, 1000, 16, 10000, 50, 17,
123, 32, 8, 64, 8096, 1024, 123, 9 };
- library_init(NULL);
+ library_init(NULL, "malloc_speed");
atexit(library_deinit);
print_mallinfo();
usage();
}
- library_init(NULL);
+ library_init(NULL, "pubkey_speed");
lib->plugins->load(lib->plugins, argv[1]);
atexit(library_deinit);
*/
static void init()
{
- library_init(NULL);
+ library_init(NULL, "tls_test");
dbg = dbg_tls;
const char **notice = copyright;
const char **co;
- library_init(NULL);
+ library_init(NULL, "_copyright");
atexit(library_deinit);
while ((opt = getopt_long(argc, argv, "", opts, NULL)) != EOF)
dbg = dbg_stderr;
atexit(library_deinit);
- if (!library_init(NULL))
+ if (!library_init(NULL, "charon-cmd"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
dbg = dbg_syslog;
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "charon-nm"))
{
library_deinit();
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
dbg = dbg_syslog;
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, dmn_name))
{
library_deinit();
exit(status);
dbg = dbg_stderr;
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "charon"))
{
library_deinit();
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
/* avoid confusing leak reports in build process */
setenv("LEAK_DETECTIVE_DISABLE", "1", 0);
/* don't use a strongswan.conf, forces integrity check to disabled */
- library_init("");
+ library_init("", "checksum_builder");
atexit(library_deinit);
integrity = integrity_checker_create(NULL);
char *suite_file = "suite.conf", *test_file = NULL, *preload, *plugins;
file_logger_t *logger;
- if (!library_init(NULL))
+ if (!library_init(NULL, "conftest"))
{
library_deinit();
return SS_RC_LIBSTRONGSWAN_INTEGRITY;
/* there are too many to report, rubyruby... */
setenv("LEAK_DETECTIVE_DISABLE", "1", 1);
- library_init(NULL);
+ library_init(NULL, "dumm");
dumm = dumm_create(NULL);
enumerator_t *enumerator;
guest_t *guest;
- library_init(NULL);
+ library_init(NULL, "dumm");
gtk_init(&argc, &argv);
pages = linked_list_create();
dbg = dbg_android;
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "charon"))
{
library_deinit();
return FALSE;
dbg = dbg_stderr;
atexit(library_deinit);
- if (!library_init(NULL))
+ if (!library_init(NULL, "charon-xpc"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
else
{
/* we are the first to initialize libstrongswan */
- if (!library_init(NULL))
+ if (!library_init(NULL, "libimcv"))
{
return FALSE;
}
atexit(library_deinit);
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "imv_policy_manager"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
atexit(cleanup);
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "pacman"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
if (!lib->plugins->load(lib->plugins,
- lib->settings->get_str(lib->settings, "attest.load", "sqlite")))
+ lib->settings->get_str(lib->settings, "pacman.load", "sqlite")))
{
exit(SS_RC_INITIALIZATION_FAILED);
}
atexit(library_deinit);
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "attest"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
threads_deinit();
backtrace_deinit();
+ free((void*)this->public.ns);
free(this);
lib = NULL;
}
/*
* see header file
*/
-bool library_init(char *settings)
+bool library_init(char *settings, const char *namespace)
{
private_library_t *this;
printf_hook_t *pfh;
.public = {
.get = _get,
.set = _set,
+ .ns = strdup(namespace ?: "libstrongswan"),
},
.ref = 1,
);
/*
+ * Copyright (C) 2010-2014 Tobias Brunner
* Copyright (C) 2008 Martin Willi
* Hochschule fuer Technik Rapperswil
*
*/
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
*/
* 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.
bool old = FALSE;
int i;
- library_init(NULL);
+ library_init(NULL, "test-runner");
test_setup_handler();
*/
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,
bool debug;
int threads, timeout;
- library_init(NULL);
+ library_init(NULL, "manager");
if (!lib->plugins->load(lib->plugins,
lib->settings->get_str(lib->settings, "manager.load", PLUGINS)))
{
char *uri;
int timeout, threads;
- library_init(NULL);
+ library_init(NULL, "medsrv");
if (!lib->plugins->load(lib->plugins,
lib->settings->get_str(lib->settings, "medsrv.load", PLUGINS)))
{
/* initialize library */
atexit(library_deinit);
- if (!library_init(NULL))
+ if (!library_init(NULL, "openac"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
int main(int argc, char *argv[])
{
atexit(library_deinit);
- if (!library_init(NULL))
+ if (!library_init(NULL, "pki"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
atexit(library_deinit);
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "pool"))
{
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
}
PLUGIN_PROVIDE(CUSTOM, "pt-tls-client"),
PLUGIN_DEPENDS(CUSTOM, "tnccs-manager"),
};
- library_init(NULL);
+ library_init(NULL, "pt-tls-client");
libtnccs_init();
dbg = dbg_pt_tls;
err_t ugh = NULL;
/* initialize library */
- if (!library_init(NULL))
+ if (!library_init(NULL, "scepclient"))
{
library_deinit();
exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
bool attach_gdb = FALSE;
bool load_warning = FALSE;
- library_init(NULL);
+ library_init(NULL, "starter");
atexit(library_deinit);
libhydra_init("starter");
const stroke_token_t *token;
int res = 0;
- library_init(NULL);
+ library_init(NULL, "stroke");
atexit(library_deinit);
if (argc < 2)