aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/utils/linked_list.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-09-11 10:40:10 +0200
committerMartin Willi <martin@revosec.ch>2012-09-11 16:18:28 +0200
commitdc7b79d8a5c8104001bba4c52a8b3716a0cf6d88 (patch)
tree526e7d8168dc4c08163f4f37fb204efa4235b848 /src/libstrongswan/utils/linked_list.c
parentf942588f951b7a2e519cdbf5f4da07143a24ae4f (diff)
downloadstrongswan-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.c19
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;
+}