Attributes moved from libstrongswan to libhydra.

The attribute_manager_t instance is now located on the new hydra object
instead of the lib object.
This commit is contained in:
Tobias Brunner
2010-03-24 18:53:10 +01:00
parent 83218f0d65
commit 567d3f1463
13 changed files with 57 additions and 15 deletions
-3
View File
@@ -28,9 +28,6 @@
* @defgroup config config * @defgroup config config
* @ingroup libcharon * @ingroup libcharon
* *
* @defgroup attributes attributes
* @ingroup config
*
* @defgroup control control * @defgroup control control
* @ingroup libcharon * @ingroup libcharon
* *
+4 -1
View File
@@ -1,7 +1,10 @@
lib_LTLIBRARIES = libhydra.la lib_LTLIBRARIES = libhydra.la
libhydra_la_SOURCES = \ libhydra_la_SOURCES = \
hydra.c hydra.h hydra.c hydra.h \
attributes/attributes.c attributes/attributes.h \
attributes/attribute_provider.h attributes/attribute_handler.h \
attributes/attribute_manager.c attributes/attribute_manager.h
libhydra_la_LIBADD = libhydra_la_LIBADD =
+30
View File
@@ -17,11 +17,32 @@
#include <debug.h> #include <debug.h>
typedef struct private_hydra_t private_hydra_t;
/**
* Private additions to hydra_t.
*/
struct private_hydra_t {
/**
* Public members of hydra_t.
*/
hydra_t public;
};
/**
* Single instance of hydra_t.
*/
hydra_t *hydra;
/** /**
* Described in header. * Described in header.
*/ */
void libhydra_deinit() void libhydra_deinit()
{ {
private_hydra_t *this = (private_hydra_t*)hydra;
this->public.attributes->destroy(this->public.attributes);
free(this);
hydra = NULL;
} }
/** /**
@@ -29,6 +50,15 @@ void libhydra_deinit()
*/ */
bool libhydra_init() bool libhydra_init()
{ {
private_hydra_t *this;
INIT(this,
.public = {
.attributes = attribute_manager_create(),
},
);
hydra = &this->public;
if (lib->integrity && if (lib->integrity &&
!lib->integrity->check(lib->integrity, "libhydra", libhydra_init)) !lib->integrity->check(lib->integrity, "libhydra", libhydra_init))
{ {
+23
View File
@@ -16,6 +16,9 @@
/** /**
* @defgroup libhydra libhydra * @defgroup libhydra libhydra
* *
* @defgroup attributes attributes
* @ingroup libhydra
*
* @defgroup hplugins plugins * @defgroup hplugins plugins
* @ingroup libhydra * @ingroup libhydra
* *
@@ -26,8 +29,28 @@
#ifndef HYDRA_H_ #ifndef HYDRA_H_
#define HYDRA_H_ #define HYDRA_H_
typedef struct hydra_t hydra_t;
#include <attributes/attribute_manager.h>
#include <library.h> #include <library.h>
/**
* IKE Daemon support object.
*/
struct hydra_t {
/**
* manager for payload attributes
*/
attribute_manager_t *attributes;
};
/**
* The single instance of hydra_t. Set between calls to libhydra_init() and
* libhydra_deinit() calls.
*/
extern hydra_t *hydra;
/** /**
* Initialize libhydra. * Initialize libhydra.
* @return FALSE if integrity check failed * @return FALSE if integrity check failed
-3
View File
@@ -10,9 +10,6 @@ printf_hook.c printf_hook.h \
asn1/asn1.c asn1/asn1.h \ asn1/asn1.c asn1/asn1.h \
asn1/asn1_parser.c asn1/asn1_parser.h \ asn1/asn1_parser.c asn1/asn1_parser.h \
asn1/oid.c asn1/oid.h \ asn1/oid.c asn1/oid.h \
attributes/attributes.c attributes/attributes.h \
attributes/attribute_provider.h attributes/attribute_handler.h \
attributes/attribute_manager.c attributes/attribute_manager.h \
crypto/crypters/crypter.c crypto/crypters/crypter.h \ crypto/crypters/crypter.c crypto/crypters/crypter.h \
crypto/hashers/hasher.h crypto/hashers/hasher.c \ crypto/hashers/hasher.h crypto/hashers/hasher.c \
crypto/pkcs9.c crypto/pkcs9.h \ crypto/pkcs9.c crypto/pkcs9.h \
-2
View File
@@ -66,7 +66,6 @@ void library_deinit()
this->public.encoding->destroy(this->public.encoding); this->public.encoding->destroy(this->public.encoding);
this->public.crypto->destroy(this->public.crypto); this->public.crypto->destroy(this->public.crypto);
this->public.fetcher->destroy(this->public.fetcher); this->public.fetcher->destroy(this->public.fetcher);
this->public.attributes->destroy(this->public.attributes);
this->public.db->destroy(this->public.db); this->public.db->destroy(this->public.db);
this->public.printf_hook->destroy(this->public.printf_hook); this->public.printf_hook->destroy(this->public.printf_hook);
if (this->public.integrity) if (this->public.integrity)
@@ -131,7 +130,6 @@ bool library_init(char *settings)
this->public.creds = credential_factory_create(); this->public.creds = credential_factory_create();
this->public.encoding = key_encoding_create(); this->public.encoding = key_encoding_create();
this->public.fetcher = fetcher_manager_create(); this->public.fetcher = fetcher_manager_create();
this->public.attributes = attribute_manager_create();
this->public.db = database_factory_create(); this->public.db = database_factory_create();
this->public.plugins = plugin_loader_create(); this->public.plugins = plugin_loader_create();
this->public.integrity = NULL; this->public.integrity = NULL;
-6
View File
@@ -63,7 +63,6 @@
#include "plugins/plugin_loader.h" #include "plugins/plugin_loader.h"
#include "crypto/crypto_factory.h" #include "crypto/crypto_factory.h"
#include "fetcher/fetcher_manager.h" #include "fetcher/fetcher_manager.h"
#include "attributes/attribute_manager.h"
#include "database/database_factory.h" #include "database/database_factory.h"
#include "credentials/credential_factory.h" #include "credentials/credential_factory.h"
#include "credentials/keys/key_encoding.h" #include "credentials/keys/key_encoding.h"
@@ -100,11 +99,6 @@ struct library_t {
*/ */
fetcher_manager_t *fetcher; fetcher_manager_t *fetcher;
/**
* manager for payload attributes
*/
attribute_manager_t *attributes;
/** /**
* database construction factory * database construction factory
*/ */