aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/daemon.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/daemon.h')
-rw-r--r--Source/charon/daemon.h104
1 files changed, 102 insertions, 2 deletions
diff --git a/Source/charon/daemon.h b/Source/charon/daemon.h
index c7193bb94..872c7fa27 100644
--- a/Source/charon/daemon.h
+++ b/Source/charon/daemon.h
@@ -23,13 +23,113 @@
#ifndef DAEMON_H_
#define DAEMON_H_
-#include <globals.h>
+
+#include <threads/sender.h>
+#include <threads/receiver.h>
+#include <threads/scheduler.h>
+#include <threads/thread_pool.h>
+#include <sa/ike_sa_manager.h>
+#include <queues/send_queue.h>
+#include <queues/job_queue.h>
+#include <network/socket.h>
+#include <queues/event_queue.h>
+#include <utils/logger_manager.h>
+#include <config/configuration_manager.h>
+
+/**
+ * Name of the daemon
+ */
#define DAEMON_NAME "charon"
+/**
+ * Number of threads in the thread pool
+ *
+ * There are several other threads, this defines
+ * only the number of threads in thread_pool_t.
+ */
#define NUMBER_OF_WORKING_THREADS 1
-#define IKEV2_UDP_PORT 4500
+/**
+ * Port on which the daemon will
+ * listen for incoming traffic
+ */
+#define IKEV2_UDP_PORT 500
+/**
+ * Default loglevel to use. This is the
+ * maximum allowed level for ever context, the definiton
+ * of the context may be less verbose.
+ */
+#define DEFAULT_LOGLEVEL FULL
+
+typedef struct daemon_t daemon_t;
+
+/**
+ * @brief Main class of daemon, contains some globals
+ */
+struct daemon_t {
+ /**
+ * socket_t instance
+ */
+ socket_t *socket;
+ /**
+ * send_queue_t instance
+ */
+ send_queue_t *send_queue;
+ /**
+ * job_queue_t instance
+ */
+ job_queue_t *job_queue;
+ /**
+ * event_queue_t instance
+ */
+ event_queue_t *event_queue;
+ /**
+ * logger_manager_t instance
+ */
+ logger_manager_t *logger_manager;
+ /**
+ * ike_sa_manager_t instance
+ */
+ ike_sa_manager_t *ike_sa_manager;
+ /**
+ * configuration_manager_t instance
+ */
+ configuration_manager_t *configuration_manager;
+
+ /**
+ * Sender-Thread
+ */
+ sender_t *sender;
+
+ /**
+ * Receiver-Thread
+ */
+ receiver_t *receiver;
+
+ /**
+ * Scheduler-Thread
+ */
+ scheduler_t *scheduler;
+
+ /**
+ * Thread pool holding the worker threads
+ */
+ thread_pool_t *thread_pool;
+
+ /**
+ * @brief shut down the daemon
+ *
+ * @param this the daemon to kill
+ * @param reason describition why it will be killed
+ */
+ void (*destroy) (daemon_t *this, char *reason);
+};
+
+/**
+ * one and only instance of the daemon
+ */
+extern daemon_t *charon;
#endif /*DAEMON_H_*/