diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-04-24 11:07:56 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-05-03 13:57:04 +0200 |
commit | 18758e3d2ea173b798a827917e4f8a1f9c4bc9a2 (patch) | |
tree | 3f1f4d82da19fcddc24190e4d86b55daa6491e4b /src | |
parent | 37d9334366759e0183f84b01d3a7d2a4c154e995 (diff) | |
download | strongswan-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.c | 2 | ||||
-rw-r--r-- | src/charon/charon.c | 2 | ||||
-rw-r--r-- | src/conftest/conftest.c | 2 | ||||
-rw-r--r-- | src/libcharon/daemon.c | 7 | ||||
-rw-r--r-- | src/libcharon/daemon.h | 8 |
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. |