summaryrefslogtreecommitdiff
path: root/src/charon/daemon.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/daemon.h')
-rw-r--r--src/charon/daemon.h156
1 files changed, 98 insertions, 58 deletions
diff --git a/src/charon/daemon.h b/src/charon/daemon.h
index 420262474..640bc6a09 100644
--- a/src/charon/daemon.h
+++ b/src/charon/daemon.h
@@ -29,22 +29,20 @@ typedef struct daemon_t daemon_t;
#include <credential_store.h>
-#include <threads/sender.h>
-#include <threads/receiver.h>
-#include <threads/scheduler.h>
-#include <threads/kernel_interface.h>
-#include <threads/thread_pool.h>
-#include <threads/stroke_interface.h>
+#include <network/sender.h>
+#include <network/receiver.h>
#include <network/socket.h>
+#include <processing/scheduler.h>
+#include <processing/thread_pool.h>
+#include <processing/job_queue.h>
+#include <processing/event_queue.h>
+#include <kernel/kernel_interface.h>
+#include <control/interface_manager.h>
#include <bus/bus.h>
#include <bus/listeners/file_logger.h>
#include <bus/listeners/sys_logger.h>
#include <sa/ike_sa_manager.h>
-#include <queues/job_queue.h>
-#include <queues/event_queue.h>
-#include <config/configuration.h>
-#include <config/connections/connection_store.h>
-#include <config/policies/policy_store.h>
+#include <config/backend_manager.h>
/**
* @defgroup charon charon
@@ -98,6 +96,14 @@ typedef struct daemon_t daemon_t;
*/
/**
+ * @defgroup bus bus
+ *
+ * Signaling bus and its listeners.
+ *
+ * @ingroup charon
+ */
+
+/**
* @defgroup config config
*
* Classes implementing configuration related things.
@@ -106,6 +112,38 @@ typedef struct daemon_t daemon_t;
*/
/**
+ * @defgroup backends backends
+ *
+ * Classes implementing configuration backends.
+ *
+ * @ingroup config
+ */
+
+/**
+ * @defgroup credentials credentials
+ *
+ * Trust chain verification and certificate store.
+ *
+ * @ingroup config
+ */
+
+/**
+ * @defgroup control control
+ *
+ * Handling of loadable control interface modules.
+ *
+ * @ingroup charon
+ */
+
+/**
+ * @defgroup interfaces interfaces
+ *
+ * Classes which control the daemon using IPC mechanisms.
+ *
+ * @ingroup control
+ */
+
+/**
* @defgroup encoding encoding
*
* Classes used to encode and decode IKEv2 messages.
@@ -122,52 +160,49 @@ typedef struct daemon_t daemon_t;
*/
/**
- * @defgroup network network
+ * @defgroup kernel kernel
*
- * Classes for network relevant stuff.
+ * Classes to configure and query the kernel.
*
* @ingroup charon
*/
/**
- * @defgroup queues queues
+ * @defgroup network network
*
- * Different kind of queues
- * (thread save lists).
+ * Classes for sending and receiving UDP packets over the network.
*
* @ingroup charon
*/
/**
- * @defgroup jobs jobs
+ * @defgroup processing processing
*
- * Jobs used in job queue and event queue.
+ * Queueing, scheduling and processing of jobs
*
- * @ingroup queues
+ * @ingroup charon
*/
/**
- * @defgroup sa sa
+ * @defgroup jobs jobs
*
- * Security associations for IKE and IPSec,
- * and some helper classes.
+ * Jobs to queue, schedule and process.
*
- * @ingroup charon
+ * @ingroup processing
*/
/**
- * @defgroup tasks tasks
+ * @defgroup sa sa
*
- * Tasks process and build message payloads. They are used to create
- * and process multiple exchanges.
+ * Security associations for IKE and IPSec, and its helper classes.
*
- * @ingroup sa
+ * @ingroup charon
*/
/**
* @defgroup authenticators authenticators
*
- * Authenticator classes to prove identity of peer.
+ * Authenticator classes to prove identity of a peer.
*
* @ingroup sa
*/
@@ -175,25 +210,18 @@ typedef struct daemon_t daemon_t;
/**
* @defgroup eap eap
*
- * EAP authentication module interface and it's implementations.
+ * EAP module loader, interface and it's implementations.
*
* @ingroup authenticators
*/
-
+
/**
- * @defgroup threads threads
- *
- * Threaded classes, which will do their job alone.
- *
- * @ingroup charon
- */
-
-/**
- * @defgroup bus bus
+ * @defgroup tasks tasks
*
- * Signaling bus and its listeners.
+ * Tasks process and build message payloads. They are used to create
+ * and process multiple exchanges.
*
- * @ingroup charon
+ * @ingroup sa
*/
/**
@@ -263,13 +291,27 @@ typedef struct daemon_t daemon_t;
#define CERTIFICATE_DIR IPSEC_D_DIR "/certs"
/**
- * Default directory for trusted CA certificates
+ * Default directory for trusted Certification Authority certificates
*
* @ingroup charon
*/
#define CA_CERTIFICATE_DIR IPSEC_D_DIR "/cacerts"
/**
+ * Default directory for Authorization Authority certificates
+ *
+ * @ingroup charon
+ */
+#define AA_CERTIFICATE_DIR IPSEC_D_DIR "/aacerts"
+
+/**
+ * Default directory for Attribute certificates
+ *
+ * @ingroup charon
+ */
+#define ATTR_CERTIFICATE_DIR IPSEC_D_DIR "/acerts"
+
+/**
* Default directory for OCSP signing certificates
*
* @ingroup charon
@@ -317,19 +359,9 @@ struct daemon_t {
ike_sa_manager_t *ike_sa_manager;
/**
- * A configuration_t instance.
+ * Manager for the different configuration backends.
*/
- configuration_t *configuration;
-
- /**
- * A connection_store_t instance.
- */
- connection_store_t *connections;
-
- /**
- * A policy_store_t instance.
- */
- policy_store_t *policies;
+ backend_manager_t *backends;
/**
* A credential_store_t instance.
@@ -382,15 +414,23 @@ struct daemon_t {
kernel_interface_t *kernel_interface;
/**
- * IPC interface, as whack in pluto
+ * Interfaces for IPC
+ */
+ interface_manager_t *interfaces;
+
+ /**
+ * @brief Let the calling thread drop its capabilities.
+ *
+ * @param this calling daemon
+ * @param full TRUE to drop as many as possible
*/
- stroke_t *stroke;
+ void (*drop_capabilities) (daemon_t *this, bool full);
/**
* @brief Shut down the daemon.
*
- * @param this the daemon to kill
- * @param reason describtion why it will be killed
+ * @param this the daemon to kill
+ * @param reason describtion why it will be killed
*/
void (*kill) (daemon_t *this, char *reason);
};