]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Store the name of the binary using libcharon to enable specific settings.
authorTobias Brunner <tobias@strongswan.org>
Tue, 24 Apr 2012 09:07:56 +0000 (11:07 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 3 May 2012 11:57:04 +0000 (13:57 +0200)
src/charon-nm/charon-nm.c
src/charon/charon.c
src/conftest/conftest.c
src/libcharon/daemon.c
src/libcharon/daemon.h

index 16b0ed856137a4344da464517a51f18ff28a14b0..2e781c08a8e44a00857cd3f298edb7485e5eb3fb 100644 (file)
@@ -240,7 +240,7 @@ int main(int argc, char *argv[])
                exit(SS_RC_INITIALIZATION_FAILED);
        }
 
-       if (!libcharon_init())
+       if (!libcharon_init("charon-nm"))
        {
                dbg_syslog(DBG_DMN, 1, "initialization failed - aborting charon-nm");
                goto deinit;
index 9211a63c2fc4e3c7613de5886408ab53919a7c0d..8475a5fc96e0f3ff565fd763502a0d801310dc60 100644 (file)
@@ -475,7 +475,7 @@ int main(int argc, char *argv[])
                exit(SS_RC_INITIALIZATION_FAILED);
        }
 
-       if (!libcharon_init())
+       if (!libcharon_init("charon"))
        {
                dbg_stderr(DBG_DMN, 1, "initialization failed - aborting charon");
                goto deinit;
index 48bf9681f9f4b1020710d815afc6ab86405dd2c7..7b5669bc6e3136f475f22814dc32cf0efacd4c3f 100644 (file)
@@ -422,7 +422,7 @@ int main(int argc, char *argv[])
                library_deinit();
                return SS_RC_INITIALIZATION_FAILED;
        }
-       if (!libcharon_init())
+       if (!libcharon_init("conftest"))
        {
                libcharon_deinit();
                libhydra_deinit();
index c6238ebab5731ec78f041c29807daea2dd8c7e93..2cf8d5e08d39800efa8673a9650194b37710957f 100644 (file)
@@ -247,7 +247,7 @@ METHOD(daemon_t, initialize, bool,
 /**
  * Create the daemon.
  */
-private_daemon_t *daemon_create()
+private_daemon_t *daemon_create(const char *name)
 {
        private_daemon_t *this;
 
@@ -260,6 +260,7 @@ private_daemon_t *daemon_create()
                        .bus = bus_create(),
                        .file_loggers = linked_list_create(),
                        .sys_loggers = linked_list_create(),
+                       .name = strdup(name ?: "libcharon"),
                },
        );
        charon = &this->public;
@@ -298,9 +299,9 @@ void libcharon_deinit()
 /**
  * Described in header.
  */
-bool libcharon_init()
+bool libcharon_init(const char *name)
 {
-       daemon_create();
+       daemon_create(name);
 
        /* for uncritical pseudo random numbers */
        srandom(time(NULL) + getpid());
index ad9ab4cd23776b89b46783760e2578f3830f0c3f..5ea3f45bfc0f40aa4ce347f75989391761d8e59d 100644 (file)
@@ -263,6 +263,11 @@ struct daemon_t {
         */
        gid_t gid;
 
+       /**
+        * Name of the binary that uses the library (used for settings etc.)
+        */
+       const char *name;
+
        /**
         * Do not drop a given capability after initialization.
         *
@@ -311,9 +316,10 @@ extern daemon_t *charon;
  * This function initializes the bus, listeners can be registered before
  * calling initialize().
  *
+ * @param name name of the binary that uses the library
  * @return             FALSE if integrity check failed
  */
-bool libcharon_init();
+bool libcharon_init(const char *name);
 
 /**
  * Deinitialize libcharon and destroy the "charon" instance of daemon_t.