aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/config/proposal.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2006-10-24 08:46:17 +0000
committerMartin Willi <martin@strongswan.org>2006-10-24 08:46:17 +0000
commit55bbff11ec96f74b27afc36dd8ca3e34ff425b40 (patch)
tree9d0ff1aad70e01718405a8da314d22a86b072947 /src/charon/config/proposal.c
parent5c4cc9a4e328d86867959dec0e082f7e4f098a6e (diff)
downloadstrongswan-55bbff11ec96f74b27afc36dd8ca3e34ff425b40.tar.bz2
strongswan-55bbff11ec96f74b27afc36dd8ca3e34ff425b40.tar.xz
linked list cleanups
added list methods invoke(), destroy_offset(), destroy_function() simplified list destruction when destroying its items
Diffstat (limited to 'src/charon/config/proposal.c')
-rw-r--r--src/charon/config/proposal.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/charon/config/proposal.c b/src/charon/config/proposal.c
index fac0e31c2..6b45d48bf 100644
--- a/src/charon/config/proposal.c
+++ b/src/charon/config/proposal.c
@@ -392,21 +392,6 @@ static proposal_t *clone_(private_proposal_t *this)
return &clone->public;
}
-/**
- * Frees all list items and destroys the list
- */
-static void free_algo_list(linked_list_t *list)
-{
- algorithm_t *algo;
-
- while(list->get_count(list) > 0)
- {
- list->remove_last(list, (void**)&algo);
- free(algo);
- }
- list->destroy(list);
-}
-
static status_t add_string_algo(private_proposal_t *this, chunk_t alg)
{
if (strncmp(alg.ptr, "aes128", alg.len) == 0)
@@ -489,11 +474,11 @@ static status_t add_string_algo(private_proposal_t *this, chunk_t alg)
*/
static void destroy(private_proposal_t *this)
{
- free_algo_list(this->encryption_algos);
- free_algo_list(this->integrity_algos);
- free_algo_list(this->prf_algos);
- free_algo_list(this->dh_groups);
- free_algo_list(this->esns);
+ this->encryption_algos->destroy_function(this->encryption_algos, free);
+ this->integrity_algos->destroy_function(this->integrity_algos, free);
+ this->prf_algos->destroy_function(this->prf_algos, free);
+ this->dh_groups->destroy_function(this->dh_groups, free);
+ this->esns->destroy_function(this->esns, free);
free(this);
}