aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/sa/ike_sa_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/sa/ike_sa_manager.h')
-rw-r--r--Source/charon/sa/ike_sa_manager.h31
1 files changed, 15 insertions, 16 deletions
diff --git a/Source/charon/sa/ike_sa_manager.h b/Source/charon/sa/ike_sa_manager.h
index 0d991554e..292271bd3 100644
--- a/Source/charon/sa/ike_sa_manager.h
+++ b/Source/charon/sa/ike_sa_manager.h
@@ -20,8 +20,8 @@
* for more details.
*/
-#ifndef IKE_SA_MANAGER_H_
-#define IKE_SA_MANAGER_H_
+#ifndef _IKE_SA_MANAGER_H_
+#define _IKE_SA_MANAGER_H_
#include <types.h>
#include <sa/ike_sa.h>
@@ -30,7 +30,7 @@
typedef struct ike_sa_manager_t ike_sa_manager_t;
/**
- * @brief The IKE_SA-Manager manages the IKE_SAs ;-).
+ * @brief The IKE_SA-Manager is responsible for managing all initiated and responded IKE_SA's.
*
* To avoid access from multiple threads, IKE_SAs must be checked out from
* the manager, and checked in after usage.
@@ -39,6 +39,8 @@ typedef struct ike_sa_manager_t ike_sa_manager_t;
* @todo checking of double-checkouts from the same threads would be nice.
* This could be done by comparing thread-ids via pthread_self()...
*
+ * @todo Managing of ike_sa_t objects in a hash table instead of linked list.
+ *
* @b Constructors:
* - ike_sa_manager_create()
*
@@ -46,7 +48,7 @@ typedef struct ike_sa_manager_t ike_sa_manager_t;
*/
struct ike_sa_manager_t {
/**
- * @brief Checkout an IKE_SA, create it when necesarry
+ * @brief Checkout an IKE_SA, create it when necesarry.
*
* Checks out a SA by its ID. An SA will be created, when:
* - Responder SPI is not set (when received an IKE_SA_INIT from initiator)
@@ -69,19 +71,16 @@ struct ike_sa_manager_t {
/**
* @brief Create and checkout an IKE_SA as original initator.
*
- * Creates and checks out a SA as initiator. An SA will be created, when:
+ * Creates and checks out a SA as initiator.
* Management of SPIs is the managers job, he will set it.
*
- * @warning checking out two times without checking in will
- * result in a deadlock!
- *
* @param ike_sa_manager the manager object
* @param ike_sa[out] checked out SA
*/
void (*create_and_checkout) (ike_sa_manager_t* ike_sa_manager,ike_sa_t **ike_sa);
/**
- * @brief Checkin the SA after usage
+ * @brief Checkin the SA after usage.
*
* @warning the SA pointer MUST NOT be used after checkin!
* The SA must be checked out again!
@@ -95,7 +94,7 @@ struct ike_sa_manager_t {
*/
status_t (*checkin) (ike_sa_manager_t* ike_sa_manager, ike_sa_t *ike_sa);
/**
- * @brief delete a SA, wich was not checked out
+ * @brief Delete a SA, which was not checked out.
*
* @warning do not use this when the SA is already checked out, this will
* deadlock!
@@ -109,7 +108,7 @@ struct ike_sa_manager_t {
status_t (*delete) (ike_sa_manager_t* ike_sa_manager, ike_sa_id_t *ike_sa_id);
/**
- * @brief delete a checked out SA
+ * @brief Delete a checked out SA.
*
* @param ike_sa_manager the manager object
* @param ike_sa SA to delete
@@ -120,9 +119,9 @@ struct ike_sa_manager_t {
status_t (*checkin_and_delete) (ike_sa_manager_t* ike_sa_manager, ike_sa_t *ike_sa);
/**
- * @brief Destroys the manager with all associated SAs
+ * @brief Destroys the manager with all associated SAs.
*
- * Threads will be driven out, so all SAs can be deleted cleanly
+ * Threads will be driven out, so all SAs can be deleted cleanly.
*
* @param ike_sa_manager the manager object
*/
@@ -130,12 +129,12 @@ struct ike_sa_manager_t {
};
/**
- * @brief Create a manager
+ * @brief Create a manager.
*
- * @returns ike_sa_manager_t object
+ * @returns ike_sa_manager_t object
*
* @ingroup sa
*/
ike_sa_manager_t *ike_sa_manager_create();
-#endif /*IKE_SA_MANAGER_H_*/
+#endif /*_IKE_SA_MANAGER_H_*/