]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
lib: Add global config namespace
authorTobias Brunner <tobias@strongswan.org>
Wed, 22 Jan 2014 10:50:39 +0000 (11:50 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 12 Feb 2014 13:34:31 +0000 (14:34 +0100)
38 files changed:
scripts/aes-test.c
scripts/crypt_burn.c
scripts/dh_speed.c
scripts/dnssec.c
scripts/fetch.c
scripts/hash_burn.c
scripts/key2keyid.c
scripts/keyid2sql.c
scripts/malloc_speed.c
scripts/pubkey_speed.c
scripts/tls_test.c
src/_copyright/_copyright.c
src/charon-cmd/charon-cmd.c
src/charon-nm/charon-nm.c
src/charon-tkm/src/charon-tkm.c
src/charon/charon.c
src/checksum/checksum_builder.c
src/conftest/conftest.c
src/dumm/ext/dumm.c
src/dumm/main.c
src/frontends/android/jni/libandroidbridge/charonservice.c
src/frontends/osx/charon-xpc/charon-xpc.c
src/libimcv/imcv.c
src/libimcv/imv/imv_policy_manager.c
src/libimcv/plugins/imv_os/pacman.c
src/libpts/plugins/imv_attestation/attest.c
src/libstrongswan/library.c
src/libstrongswan/library.h
src/libstrongswan/tests/test_runner.c
src/manager/main.c
src/medsrv/main.c
src/openac/openac.c
src/pki/pki.c
src/pool/pool.c
src/pt-tls-client/pt-tls-client.c
src/scepclient/scepclient.c
src/starter/starter.c
src/stroke/stroke.c

index f326b7ee1205fded3483d366bbd93efc3710e1fc..eb94180f852ffa0340a204bf14770a6c762b82f1 100644 (file)
@@ -556,7 +556,7 @@ int main(int argc, char *argv[])
        ctx.in = stdin;
        ctx.out = stdout;
 
-       library_init(NULL);
+       library_init(NULL, "aes-test");
        atexit(library_deinit);
 
        while (true)
index 8101f9cbd03fd70b08fe462ad84aea46c71785c2..729472e7dff4bb7da3596e8755dda5a609cb966b 100644 (file)
@@ -26,7 +26,7 @@ int main(int argc, char *argv[])
        int i = 0, limit = 0;
 
 
-       library_init(NULL);
+       library_init(NULL, "crypt_burn");
        lib->plugins->load(lib->plugins, PLUGINS);
        atexit(library_deinit);
 
index dc0a2870f207352effb8c85ddf4db9ea28b52e75..8a782d80b859218ca7059a58ef75a8e0d8b88769 100644 (file)
@@ -118,7 +118,7 @@ int main(int argc, char *argv[])
                usage();
        }
 
-       library_init(NULL);
+       library_init(NULL, "dh_speed");
        lib->plugins->load(lib->plugins, argv[1]);
        atexit(library_deinit);
 
index 0cddfc47e5b98338abf1fed09b6126ddaf7ccb67..9d35c7cda5b2a0c813949359486951f2fddf3e5f 100644 (file)
@@ -45,7 +45,7 @@ int main(int argc, char *argv[])
        rr_set_t *rrset;
        rr_t *rr;
 
-       library_init(NULL);
+       library_init(NULL, "dnssec");
        atexit(library_deinit);
 
        dbg = dbg_dnssec;
index f58b37f89b1f9a44fdf58c365345349bf86a3683..a7d98c946d72e8058a430e5c9bedd5cdee98cb6a 100644 (file)
@@ -35,7 +35,7 @@ int main(int argc, char *argv[])
 {
        chunk_t res;
 
-       library_init(NULL);
+       library_init(NULL, "fetch");
        atexit(library_deinit);
        lib->plugins->load(lib->plugins, PLUGINS);
 
index 20e5642d414d1ddbabae0f603422e7a42da8433d..97eab0d84a8d51f416adeb85ed9100bf85a806ce 100644 (file)
@@ -25,7 +25,7 @@ int main(int argc, char *argv[])
        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);
 
index 31f3bee82e8f2ff7742b5ee8c7df61dea7331e1c..e9a4ee692bd4bb6009bd0c32fd65da56da17d7b9 100644 (file)
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
        char buf[8096];
        int read;
 
-       library_init(NULL);
+       library_init(NULL, "key2keyid");
        lib->plugins->load(lib->plugins, PLUGINS);
        atexit(library_deinit);
 
index 6e9a1334eddb86cea08df3d0058600ae1d6b1088..46257891c5835c8dd3b14b0205f0bcf6fd570406 100644 (file)
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
        char buf[8096];
        int read, n;
 
-       library_init(NULL);
+       library_init(NULL, "keyid2sql");
        lib->plugins->load(lib->plugins, PLUGINS);
        atexit(library_deinit);
 
index 85d51a28110e46dcfe823543fad79d58b86ed96b..2038098db835555960011bc6263c20a10ceee04c 100644 (file)
@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
        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();
index f7e75162a5231635f2d7ba4e92f495a554d67362..66279ada365e5cd35eb225ee92b8f9e70f8cf1a3 100644 (file)
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
                usage();
        }
 
-       library_init(NULL);
+       library_init(NULL, "pubkey_speed");
        lib->plugins->load(lib->plugins, argv[1]);
        atexit(library_deinit);
 
index e1e8ca82b84472c14c0b2b8f895c0c18137cfa37..7ec477aaef3f81d65dce5a8dd68bc1ea42406025 100644 (file)
@@ -251,7 +251,7 @@ static void cleanup()
  */
 static void init()
 {
-       library_init(NULL);
+       library_init(NULL, "tls_test");
 
        dbg = dbg_tls;
 
index f9f0a859de23d4fd1f420b92aec99d32195a5c1a..806f780627bfa8a093942a57ed94d4f4767a03a8 100644 (file)
@@ -76,7 +76,7 @@ main(int argc, char *argv[])
        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)
index 0c24fd1467352c943906ed4baac44eda9ca0793a..13f97856fa6f2ab3dec49b0009971a08df9ed8c2 100644 (file)
@@ -322,7 +322,7 @@ int main(int argc, char *argv[])
 
        dbg = dbg_stderr;
        atexit(library_deinit);
-       if (!library_init(NULL))
+       if (!library_init(NULL, "charon-cmd"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index 9ce6dbaeb200ceae61eb51be09052f586bb13431..12667ab196f6b201f9a110edb3f20a35dedce749 100644 (file)
@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
        dbg = dbg_syslog;
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "charon-nm"))
        {
                library_deinit();
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
index 3db06743d3d770fb5797998a0c26dbb5cded33dd..1e9fecd2d87f1042ca259e6f905f838e2a899f49 100644 (file)
@@ -250,7 +250,7 @@ int main(int argc, char *argv[])
        dbg = dbg_syslog;
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, dmn_name))
        {
                library_deinit();
                exit(status);
index 340f852cd96cb3a57eb107f3252dc8cd74ba119a..d799691259135e71222e5e73f58c7c4eef0ef060 100644 (file)
@@ -289,7 +289,7 @@ int main(int argc, char *argv[])
        dbg = dbg_stderr;
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "charon"))
        {
                library_deinit();
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
index ae9ba93b67d42a82f44ceb09212cfc8acd3dee91..cc8185ecdfa35063343b487c7344af8f49b91860 100644 (file)
@@ -136,7 +136,7 @@ int main(int argc, char* argv[])
        /* 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);
index faf9df91fdeee1245ae3954a8cec0f9b10144757..d935058cbf2c4f2119d36bcdc154acf9eaf01e05 100644 (file)
@@ -435,7 +435,7 @@ int main(int argc, char *argv[])
        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;
index 5acda3a9c9722798e405adf3ba27da0da61f2e2b..03ecbe40dee48c1ecedf99fb4571839d028f8a95 100644 (file)
@@ -774,7 +774,7 @@ void Init_dumm()
        /* there are too many to report, rubyruby... */
        setenv("LEAK_DETECTIVE_DISABLE", "1", 1);
 
-       library_init(NULL);
+       library_init(NULL, "dumm");
 
        dumm = dumm_create(NULL);
 
index 4cdf4682ffcb1e673f4b0e942d81cbec0fce801c..a53e1f67cd490a7917e0a28a9d089ae19e2e1d0b 100644 (file)
@@ -479,7 +479,7 @@ int main(int argc, char *argv[])
        enumerator_t *enumerator;
        guest_t *guest;
 
-       library_init(NULL);
+       library_init(NULL, "dumm");
        gtk_init(&argc, &argv);
 
        pages = linked_list_create();
index 60485b66f33231b67291784dce837c3b06674a7f..d5a68bbc1de1b3d537db9a0970ae21aab4634bd7 100644 (file)
@@ -600,7 +600,7 @@ JNI_METHOD(CharonVpnService, initializeCharon, jboolean,
        dbg = dbg_android;
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "charon"))
        {
                library_deinit();
                return FALSE;
index 0a30ff8662985c929c611b717f5648e3c8723c6d..74ad2140bbe9b5a7fd78517fbe04caabac6bde46 100644 (file)
@@ -133,7 +133,7 @@ int main(int argc, char *argv[])
 
        dbg = dbg_stderr;
        atexit(library_deinit);
-       if (!library_init(NULL))
+       if (!library_init(NULL, "charon-xpc"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index b5862daeebd07b815dcc63b2c90e01d862fc64aa..aa55746fc9a41fc1aa485f299b3f696fb2120a0e 100644 (file)
@@ -109,7 +109,7 @@ bool libimcv_init(bool is_imv)
        else
        {
                /* we are the first to initialize libstrongswan */
-               if (!library_init(NULL))
+               if (!library_init(NULL, "libimcv"))
                {
                        return FALSE;
                }
index 61e0cd05be176608fed576048bae5862f3f19d04..15d291adf9a89111a1e2d0e27bf2602b590775fb 100644 (file)
@@ -288,7 +288,7 @@ int main(int argc, char *argv[])
        atexit(library_deinit);
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "imv_policy_manager"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index 57cc62a0856f965e1f01ffa8e7f241674152c11f..019e2adb84cb17e4540afb26ab5f3bf785731ae7 100644 (file)
@@ -466,12 +466,12 @@ int main(int argc, char *argv[])
        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);
        }
index 4d25df3f40655549c915f61b38c3dc392f58132f..6e63c26531dbd4d82e538b1439e84312e6f49922 100644 (file)
@@ -439,7 +439,7 @@ int main(int argc, char *argv[])
        atexit(library_deinit);
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "attest"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index 72fc2fa4416db61528618dad1b01990e7e2f01d4..e0876ef9f56a07012926b3ab10c5e52b68f015bc 100644 (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,
        );
index e53cf09e293378d7207e66d7ee133c3ca3ffeb29..4125328b74e9df7dd13d907ecc92462c6554c211 100644 (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.
index 1e46cfe8e451a6d000c5e7101242b76502b47609..0b26ee1288e81e660fd0261b9d64b677cafa5128 100644 (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,
index 5c845b157e1bcf254283d9c07c94a3de4139cfdc..b6169082f252a6d2c438f5935ebaef4a67230095 100644 (file)
@@ -34,7 +34,7 @@ int main (int arc, char *argv[])
        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)))
        {
index 6f08b97e562200438d2b101b40de83708c0f3ce0..745fcc3592b133de730444dbdbeddd82264f7824 100644 (file)
@@ -33,7 +33,7 @@ int main(int arc, char *argv[])
        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)))
        {
index 1996025e2148f46734cb7e17c4352a059f1bec78..8862e9ab03069bf272117819ab53fa7fa5c939d2 100644 (file)
@@ -229,7 +229,7 @@ int main(int argc, char **argv)
 
        /* initialize library */
        atexit(library_deinit);
-       if (!library_init(NULL))
+       if (!library_init(NULL, "openac"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index ecc0702cdf77bd3e650f7a760f96e1a7b13a6cda..eb614dd7f889cdc141b1e9a11366e4dc1a6e1f89 100644 (file)
@@ -168,7 +168,7 @@ static void remove_callback()
 int main(int argc, char *argv[])
 {
        atexit(library_deinit);
-       if (!library_init(NULL))
+       if (!library_init(NULL, "pki"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index 05043cd8cd7db0d1d7fa02fdea47ff105c65e291..cc58f7890daebcb7751a67460976a39ea58a16ad 100644 (file)
@@ -1212,7 +1212,7 @@ int main(int argc, char *argv[])
        atexit(library_deinit);
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "pool"))
        {
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
        }
index e7d75f07885cd4ed78fc69efdaef6c88192d5f1f..90edb0c8e293c44e1df3c9a4b541d99c1c0c385e 100644 (file)
@@ -166,7 +166,7 @@ static void init()
                        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;
index ec892cc0b9b5d09e475fb2d71145a4faaf34ff8d..d7abcb423502f3bb34acd2306a82b94cc59ab9f7 100644 (file)
@@ -487,7 +487,7 @@ int main(int argc, char **argv)
        err_t ugh = NULL;
 
        /* initialize library */
-       if (!library_init(NULL))
+       if (!library_init(NULL, "scepclient"))
        {
                library_deinit();
                exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
index 06eb142bd4d94ce157f8e3aac8bfbb1ed7ec5548..87ad66dd921b064af71e0ff8609f02dd4e381141 100644 (file)
@@ -419,7 +419,7 @@ int main (int argc, char **argv)
        bool attach_gdb = FALSE;
        bool load_warning = FALSE;
 
-       library_init(NULL);
+       library_init(NULL, "starter");
        atexit(library_deinit);
 
        libhydra_init("starter");
index 75f014516a2c0540b1acc8e77e8633a3e2f1569e..69c8ea2a41a8ecdcddd95efeade72f5dafc1b95c 100644 (file)
@@ -480,7 +480,7 @@ int main(int argc, char *argv[])
        const stroke_token_t *token;
        int res = 0;
 
-       library_init(NULL);
+       library_init(NULL, "stroke");
        atexit(library_deinit);
 
        if (argc < 2)