diff options
author | Martin Willi <martin@revosec.ch> | 2012-09-11 10:40:10 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-09-11 16:18:28 +0200 |
commit | dc7b79d8a5c8104001bba4c52a8b3716a0cf6d88 (patch) | |
tree | 526e7d8168dc4c08163f4f37fb204efa4235b848 /src/libstrongswan/utils/linked_list.c | |
parent | f942588f951b7a2e519cdbf5f4da07143a24ae4f (diff) | |
download | strongswan-dc7b79d8a5c8104001bba4c52a8b3716a0cf6d88.tar.bz2 strongswan-dc7b79d8a5c8104001bba4c52a8b3716a0cf6d88.tar.xz |
Add a linked list constructor initializing from an enumerator
Diffstat (limited to 'src/libstrongswan/utils/linked_list.c')
-rw-r--r-- | src/libstrongswan/utils/linked_list.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/linked_list.c b/src/libstrongswan/utils/linked_list.c index 59d416f2f..6b5f5f81a 100644 --- a/src/libstrongswan/utils/linked_list.c +++ b/src/libstrongswan/utils/linked_list.c @@ -572,3 +572,22 @@ linked_list_t *linked_list_create() return &this->public; } + +/* + * See header. + */ +linked_list_t *linked_list_create_from_enumerator(enumerator_t *enumerator) +{ + linked_list_t *list; + void *item; + + list = linked_list_create(); + + while (enumerator->enumerate(enumerator, &item)) + { + list->insert_last(list, item); + } + enumerator->destroy(enumerator); + + return list; +} |