libimcv: Added inactive field to device database table
[strongswan.git] / src / libcharon / daemon.h
index 0b66ea3..a37a314 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2012 Tobias Brunner
+ * Copyright (C) 2006-2017 Tobias Brunner
  * Copyright (C) 2005-2009 Martin Willi
  * Copyright (C) 2006 Daniel Roethlisberger
  * Copyright (C) 2005 Jan Hutter
@@ -63,7 +63,7 @@
  * @defgroup payloads payloads
  * @ingroup encoding
  *
- * @defgroup ckernel kernel
+ * @defgroup kernel kernel
  * @ingroup libcharon
  *
  * @defgroup network network
  * IKE_SA.
  *
  * The controller, credential_manager, bus and backend_manager (config) are
- * places where a plugin ca register itself to privide information or observe
+ * places where a plugin ca register itself to provide information or observe
  * and control the daemon.
  */
 
 typedef struct daemon_t daemon_t;
 
 #include <attributes/attribute_manager.h>
+#include <kernel/kernel_interface.h>
 #include <network/sender.h>
 #include <network/receiver.h>
 #include <network/socket_manager.h>
@@ -189,6 +190,7 @@ typedef struct daemon_t daemon_t;
 #include <sa/child_sa_manager.h>
 #include <sa/trap_manager.h>
 #include <sa/shunt_manager.h>
+#include <sa/redirect_manager.h>
 #include <config/backend_manager.h>
 #include <sa/eap/eap_manager.h>
 #include <sa/xauth/xauth_manager.h>
@@ -239,6 +241,11 @@ struct daemon_t {
        socket_manager_t *socket;
 
        /**
+        * Kernel interface to communicate with kernel
+        */
+       kernel_interface_t *kernel;
+
+       /**
         * A ike_sa_manager_t instance.
         */
        ike_sa_manager_t *ike_sa_manager;
@@ -259,6 +266,11 @@ struct daemon_t {
        shunt_manager_t *shunts;
 
        /**
+        * Manager for IKE redirect providers
+        */
+       redirect_manager_t *redirect;
+
+       /**
         * Manager for the different configuration backends.
         */
        backend_manager_t *backends;
@@ -326,17 +338,27 @@ struct daemon_t {
        /**
         * Load/Reload loggers defined in strongswan.conf
         *
-        * @param levels        optional debug levels used to create default loggers
-        *                                      if none are defined in strongswan.conf
+        * If none are defined in strongswan.conf default loggers configured via
+        * set_default_loggers() are loaded.
+        */
+       void (*load_loggers)(daemon_t *this);
+
+       /**
+        * Configure default loggers if none are defined in strongswan.conf
+        *
+        * @param levels        debug levels used to create default loggers if none are
+        *                                      defined in strongswan.conf (NULL to disable)
         * @param to_stderr     TRUE to log to stderr/stdout if no loggers are defined
-        *                                      in strongswan.conf
+        *                                      in strongswan.conf (logging to syslog is always enabled)
         */
-       void (*load_loggers)(daemon_t *this, level_t levels[DBG_MAX],
-                                                bool to_stderr);
+       void (*set_default_loggers)(daemon_t *this, level_t levels[DBG_MAX],
+                                                               bool to_stderr);
 
        /**
-        * Set the log level for the given log group for all configured file-,
-        * syslog and custom-loggers.
+        * Set the log level for the given log group for all loaded loggers.
+        *
+        * This change is not persistent and gets reset if loggers are reloaded
+        * via load_loggers().
         *
         * @param group         log group
         * @param level         log level