aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-04-24 11:07:56 +0200
committerTobias Brunner <tobias@strongswan.org>2012-05-03 13:57:04 +0200
commit18758e3d2ea173b798a827917e4f8a1f9c4bc9a2 (patch)
tree3f1f4d82da19fcddc24190e4d86b55daa6491e4b /src
parent37d9334366759e0183f84b01d3a7d2a4c154e995 (diff)
downloadstrongswan-18758e3d2ea173b798a827917e4f8a1f9c4bc9a2.tar.bz2
strongswan-18758e3d2ea173b798a827917e4f8a1f9c4bc9a2.tar.xz
Store the name of the binary using libcharon to enable specific settings.
Diffstat (limited to 'src')
-rw-r--r--src/charon-nm/charon-nm.c2
-rw-r--r--src/charon/charon.c2
-rw-r--r--src/conftest/conftest.c2
-rw-r--r--src/libcharon/daemon.c7
-rw-r--r--src/libcharon/daemon.h8
5 files changed, 14 insertions, 7 deletions
diff --git a/src/charon-nm/charon-nm.c b/src/charon-nm/charon-nm.c
index 16b0ed856..2e781c08a 100644
--- a/src/charon-nm/charon-nm.c
+++ b/src/charon-nm/charon-nm.c
@@ -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;
diff --git a/src/charon/charon.c b/src/charon/charon.c
index 9211a63c2..8475a5fc9 100644
--- a/src/charon/charon.c
+++ b/src/charon/charon.c
@@ -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;
diff --git a/src/conftest/conftest.c b/src/conftest/conftest.c
index 48bf9681f..7b5669bc6 100644
--- a/src/conftest/conftest.c
+++ b/src/conftest/conftest.c
@@ -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();
diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c
index c6238ebab..2cf8d5e08 100644
--- a/src/libcharon/daemon.c
+++ b/src/libcharon/daemon.c
@@ -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());
diff --git a/src/libcharon/daemon.h b/src/libcharon/daemon.h
index ad9ab4cd2..5ea3f45bf 100644
--- a/src/libcharon/daemon.h
+++ b/src/libcharon/daemon.h
@@ -264,6 +264,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.
*
* Some plugins might need additional capabilites. They tell the daemon
@@ -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.