Store the name of the daemon that initialized libhydra to load daemon-specific settings.

This commit is contained in:
Tobias Brunner
2010-04-06 12:47:40 +02:00
parent e82b5755be
commit facf887253
4 changed files with 14 additions and 4 deletions
+1 -1
View File
@@ -289,7 +289,7 @@ int main(int argc, char *argv[])
exit(SS_RC_DAEMON_INTEGRITY);
}
if (!libhydra_init())
if (!libhydra_init("charon"))
{
dbg_stderr(1, "initialization failed - aborting charon");
libhydra_deinit();
+3 -1
View File
@@ -42,6 +42,7 @@ void libhydra_deinit()
{
private_hydra_t *this = (private_hydra_t*)hydra;
this->public.attributes->destroy(this->public.attributes);
free((void*)this->public.daemon);
free(this);
hydra = NULL;
}
@@ -49,13 +50,14 @@ void libhydra_deinit()
/**
* Described in header.
*/
bool libhydra_init()
bool libhydra_init(const char *daemon)
{
private_hydra_t *this;
INIT(this,
.public = {
.attributes = attribute_manager_create(),
.daemon = strdup(daemon ?: "libhydra"),
},
);
hydra = &this->public;
+9 -1
View File
@@ -44,6 +44,11 @@ struct hydra_t {
* manager for payload attributes
*/
attribute_manager_t *attributes;
/**
* name of the daemon that initialized the library
*/
const char *daemon;
};
/**
@@ -56,9 +61,12 @@ extern hydra_t *hydra;
/**
* Initialize libhydra.
*
* The daemon's name is used to load daemon-specific settings.
*
* @param daemon name of the daemon that initializes the library
* @return FALSE if integrity check failed
*/
bool libhydra_init();
bool libhydra_init(const char *daemon);
/**
* Deinitialize libhydra.
+1 -1
View File
@@ -275,7 +275,7 @@ int main(int argc, char **argv)
library_deinit();
exit(SS_RC_DAEMON_INTEGRITY);
}
if (!libhydra_init())
if (!libhydra_init("pluto"))
{
libhydra_deinit();
library_deinit();