diff options
Diffstat (limited to 'Source/charon/sa/ike_sa_manager.c')
-rw-r--r-- | Source/charon/sa/ike_sa_manager.c | 86 |
1 files changed, 47 insertions, 39 deletions
diff --git a/Source/charon/sa/ike_sa_manager.c b/Source/charon/sa/ike_sa_manager.c index 78a467d8e..0eec8ea5d 100644 --- a/Source/charon/sa/ike_sa_manager.c +++ b/Source/charon/sa/ike_sa_manager.c @@ -39,41 +39,48 @@ typedef struct ike_sa_entry_t ike_sa_entry_t; */ struct ike_sa_entry_t { /** - * destructor, also destroys ike_sa + * Destructor, also destroys associated ike_sa_t object. */ status_t (*destroy) (ike_sa_entry_t *this); + /** - * Number of threads waiting for this ike_sa + * Number of threads waiting for this ike_sa_t object. */ int waiting_threads; + /** - * condvar where threads can wait until it's free again + * Condvar where threads can wait until ike_sa_t object is free for use again. */ pthread_cond_t condvar; + /** - * is this ike_sa currently checked out? + * Is this ike_sa currently checked out? */ bool checked_out; + /** * Does this SA drives out new threads? */ bool driveout_new_threads; + /** * Does this SA drives out waiting threads? */ bool driveout_waiting_threads; + /** - * identifiaction of ike_sa (SPIs) + * Identifiaction of an IKE_SA (SPIs). */ ike_sa_id_t *ike_sa_id; + /** - * the contained ike_sa + * The contained ike_sa_t object. */ ike_sa_t *ike_sa; }; /** - * Implements ike_sa_entry_t.destroy. + * Implementation of ike_sa_entry_t.destroy. */ static status_t ike_sa_entry_destroy(ike_sa_entry_t *this) { @@ -85,12 +92,12 @@ static status_t ike_sa_entry_destroy(ike_sa_entry_t *this) } /** - * @brief creates a new entry for the ike_sa list + * @brief Creates a new entry for the ike_sa_t list. * * This constructor additionaly creates a new and empty SA. * - * @param ike_sa_id the associated ike_sa_id_t, will be cloned - * @return created entry, with ike_sa and ike_sa_id + * @param ike_sa_id The associated ike_sa_id_t, will be cloned + * @return ike_sa_entry_t object */ static ike_sa_entry_t *ike_sa_entry_create(ike_sa_id_t *ike_sa_id) { @@ -116,36 +123,37 @@ static ike_sa_entry_t *ike_sa_entry_create(ike_sa_id_t *ike_sa_id) return this; } + typedef struct private_ike_sa_manager_t private_ike_sa_manager_t; /** - * Additional private members to ike_sa_manager_t + * Additional private members of ike_sa_manager_t. */ struct private_ike_sa_manager_t { /** - * Public members + * Public interface of ike_sa_manager_t. */ ike_sa_manager_t public; /** - * @brief get next spi - * - * we give out SPIs incremental. + * @brief Get next spi. * + * We give out SPIs incremental starting at 1. + * * @param this the ike_sa_manager * @return the next spi */ u_int64_t (*get_next_spi) (private_ike_sa_manager_t *this); /** - * @brief find the ike_sa_entry in the list by SPIs. + * @brief Find the ike_sa_entry_t object in the list by SPIs. * * This function simply iterates over the linked list. A hash-table * would be more efficient when storing a lot of IKE_SAs... * - * @param this the ike_sa_manager containing the list + * @param this calling object * @param ike_sa_id id of the ike_sa, containing SPIs - * @param entry[out] pointer to set to the found entry + * @param[out] entry pointer to set to the found entry * @return * - SUCCESS when found, * - NOT_FOUND when no such ike_sa_id in list @@ -153,14 +161,14 @@ struct private_ike_sa_manager_t { status_t (*get_entry_by_id) (private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id, ike_sa_entry_t **entry); /** - * @brief find the ike_sa_entry in the list by pointer to SA. + * @brief Find the ike_sa_entry_t in the list by pointer to SA. * * This function simply iterates over the linked list. A hash-table * would be more efficient when storing a lot of IKE_SAs... * - * @param this the ike_sa_manager containing the list - * @param ike_sa pointer to the ike_sa - * @param entry[out] pointer to set to the found entry + * @param this calling object + * @param ike_sa pointer to the ike_sa + * @param[out] entry pointer to set to the found entry * @return * - SUCCESS when found, * - NOT_FOUND when no such ike_sa_id in list @@ -168,9 +176,9 @@ struct private_ike_sa_manager_t { status_t (*get_entry_by_sa) (private_ike_sa_manager_t *this, ike_sa_t *ike_sa, ike_sa_entry_t **entry); /** - * @brief delete an entry from the linked list + * @brief Felete an entry from the linked list. * - * @param this the ike_sa_manager containing the list + * @param this calling object * @param entry entry to delete * @return * - SUCCESS when found, @@ -179,28 +187,28 @@ struct private_ike_sa_manager_t { status_t (*delete_entry) (private_ike_sa_manager_t *this, ike_sa_entry_t *entry); /** - * lock for exclusivly accessing the manager + * Lock for exclusivly accessing the manager. */ pthread_mutex_t mutex; /** - * Logger used for this IKE SA Manager + * Logger used for this IKE SA Manager. */ logger_t *logger; /** - * Linked list with entries for the ike_sa + * Linked list with entries for the ike_sa_t objects. */ linked_list_t *ike_sa_list; /** - * Next SPI, needed for incremental creation of SPIs + * Next SPI, needed for incremental creation of SPIs. */ u_int64_t next_spi; }; /** - * Implements private_ike_sa_manager_t.get_entry_by_id. + * Implementation of private_ike_sa_manager_t.get_entry_by_id. */ static status_t get_entry_by_id(private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id, ike_sa_entry_t **entry) { @@ -256,7 +264,7 @@ static status_t get_entry_by_id(private_ike_sa_manager_t *this, ike_sa_id_t *ike } /** - * Implements private_ike_sa_manager_t.get_entry_by_sa. + * Implementation of private_ike_sa_manager_t.get_entry_by_sa. */ static status_t get_entry_by_sa(private_ike_sa_manager_t *this, ike_sa_t *ike_sa, ike_sa_entry_t **entry) { @@ -288,7 +296,7 @@ static status_t get_entry_by_sa(private_ike_sa_manager_t *this, ike_sa_t *ike_sa } /** - * Implements private_ike_sa_manager_s.delete_entry. + * Implementation of private_ike_sa_manager_s.delete_entry. */ static status_t delete_entry(private_ike_sa_manager_t *this, ike_sa_entry_t *entry) { @@ -319,7 +327,7 @@ static status_t delete_entry(private_ike_sa_manager_t *this, ike_sa_entry_t *ent /** - * Implements private_ike_sa_manager_t.get_next_spi. + * Implementation of private_ike_sa_manager_t.get_next_spi. */ static u_int64_t get_next_spi(private_ike_sa_manager_t *this) { @@ -333,7 +341,7 @@ static u_int64_t get_next_spi(private_ike_sa_manager_t *this) } /** - * Implementation of ike_sa_manager.create_and_checkout. + * Implementation of of ike_sa_manager.create_and_checkout. */ static void create_and_checkout(private_ike_sa_manager_t *this,ike_sa_t **ike_sa) { @@ -363,7 +371,7 @@ static void create_and_checkout(private_ike_sa_manager_t *this,ike_sa_t **ike_sa } /** - * Implementation of ike_sa_manager.checkout. + * Implementation of of ike_sa_manager.checkout. */ static status_t checkout(private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id, ike_sa_t **ike_sa) { @@ -482,7 +490,7 @@ static status_t checkout(private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id, } /** - * Implements ike_sa_manager_t.checkin. + * Implementation of ike_sa_manager_t.checkin. */ static status_t checkin(private_ike_sa_manager_t *this, ike_sa_t *ike_sa) { @@ -519,7 +527,7 @@ static status_t checkin(private_ike_sa_manager_t *this, ike_sa_t *ike_sa) /** - * Implements ike_sa_manager_t.checkin_and_delete. + * Implementation of ike_sa_manager_t.checkin_and_delete. */ static status_t checkin_and_delete(private_ike_sa_manager_t *this, ike_sa_t *ike_sa) { @@ -564,7 +572,7 @@ static status_t checkin_and_delete(private_ike_sa_manager_t *this, ike_sa_t *ike } /** - * Implements ike_sa_manager_t.delete. + * Implementation of ike_sa_manager_t.delete. */ static status_t delete(private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id) { @@ -607,7 +615,7 @@ static status_t delete(private_ike_sa_manager_t *this, ike_sa_id_t *ike_sa_id) } /** - * Implements ike_sa_manager_t.destroy. + * Implementation of ike_sa_manager_t.destroy. */ static void destroy(private_ike_sa_manager_t *this) { @@ -666,7 +674,7 @@ static void destroy(private_ike_sa_manager_t *this) } /* - * Described in header + * Described in header. */ ike_sa_manager_t *ike_sa_manager_create() { |