aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/sa/ike_sa_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/sa/ike_sa_manager.h')
-rw-r--r--src/charon/sa/ike_sa_manager.h37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/charon/sa/ike_sa_manager.h b/src/charon/sa/ike_sa_manager.h
index db2efe541..659bdfbb2 100644
--- a/src/charon/sa/ike_sa_manager.h
+++ b/src/charon/sa/ike_sa_manager.h
@@ -26,8 +26,6 @@
#include <types.h>
#include <sa/ike_sa.h>
-#include <utils/logger.h>
-
typedef struct ike_sa_manager_t ike_sa_manager_t;
@@ -84,9 +82,9 @@ struct ike_sa_manager_t {
* @return checked out/created IKE_SA
*/
ike_sa_t* (*checkout_by_id) (ike_sa_manager_t* this,
- host_t *my_host, host_t* other_host,
- identification_t *my_id,
- identification_t *other_id);
+ host_t *my_host, host_t* other_host,
+ identification_t *my_id,
+ identification_t *other_id);
/**
* @brief Check out an IKE_SA by protocol and SPI of one of its CHILD_SA.
@@ -104,30 +102,17 @@ struct ike_sa_manager_t {
ike_sa_t* (*checkout_by_child) (ike_sa_manager_t* this, u_int32_t reqid);
/**
- * @brief Get a list of all IKE_SA SAs currently set up.
- *
- * The resulting list with all IDs must be destroyed by
- * the caller. There is no guarantee an ike_sa with the
- * corrensponding ID really exists, since it may be deleted
- * in the meantime by another thread.
- *
- * @param this the manager object
- * @return a list with ike_sa_id_t s
- */
- linked_list_t *(*get_ike_sa_list) (ike_sa_manager_t* this);
-
- /**
- * @brief Log the status of the IKE_SA's in the manager.
+ * @brief Create an iterator over all stored IKE_SAs.
+ *
+ * The avoid synchronization issues, the iterator locks access
+ * to the manager exclusively, until it gets destroyed.
+ * Only use the iterate() functions of this iterator!!! Anything other
+ * is not implemented and causes crashes.
*
- * A informational log is done to the supplied logger. If logger is
- * NULL, an internal logger is used. If a name is supplied,
- * only connections with the matching name will be logged.
- *
* @param this the manager object
- * @param logger logger to do the log, or NULL
- * @param name name of a connection, or NULL
+ * @return iterator over all IKE_SAs.
*/
- void (*log_status) (ike_sa_manager_t* this, logger_t* logger, char* name);
+ iterator_t *(*create_iterator) (ike_sa_manager_t* this);
/**
* @brief Checkin the SA after usage.