Replaced ike_sa_t.create_child_sa_iterator with enumerator.

This required two new methods on ike_sa_t. One returns the number of
CHILD_SAs and one allows to remove a CHILD_SA.
This commit is contained in:
Tobias Brunner
2011-07-06 09:43:45 +02:00
parent 4f9c691adb
commit 4bbce1ef37
16 changed files with 140 additions and 119 deletions
+4 -4
View File
@@ -196,12 +196,12 @@ METHOD(ha_cache_t, delete_, void,
*/
static status_t rekey_children(ike_sa_t *ike_sa)
{
iterator_t *iterator;
enumerator_t *enumerator;
child_sa_t *child_sa;
status_t status = SUCCESS;
iterator = ike_sa->create_child_sa_iterator(ike_sa);
while (iterator->iterate(iterator, (void**)&child_sa))
enumerator = ike_sa->create_child_sa_enumerator(ike_sa);
while (enumerator->enumerate(enumerator, (void**)&child_sa))
{
DBG1(DBG_CFG, "resyncing CHILD_SA");
status = ike_sa->rekey_child_sa(ike_sa, child_sa->get_protocol(child_sa),
@@ -211,7 +211,7 @@ static status_t rekey_children(ike_sa_t *ike_sa)
break;
}
}
iterator->destroy(iterator);
enumerator->destroy(enumerator);
return status;
}
+3 -3
View File
@@ -214,7 +214,7 @@ static void request_query_ikesa(xmlTextReaderPtr reader, xmlTextWriterPtr writer
{
ike_sa_id_t *id;
host_t *local, *remote;
iterator_t *children;
enumerator_t *children;
child_sa_t *child_sa;
id = ike_sa->get_id(ike_sa);
@@ -264,8 +264,8 @@ static void request_query_ikesa(xmlTextReaderPtr reader, xmlTextWriterPtr writer
/* <childsalist> */
xmlTextWriterStartElement(writer, "childsalist");
children = ike_sa->create_child_sa_iterator(ike_sa);
while (children->iterate(children, (void**)&child_sa))
children = ike_sa->create_child_sa_enumerator(ike_sa);
while (children->enumerate(children, (void**)&child_sa))
{
write_child(writer, child_sa);
}
+10 -11
View File
@@ -294,12 +294,12 @@ METHOD(stroke_control_t, terminate, void,
while (enumerator->enumerate(enumerator, &ike_sa))
{
child_sa_t *child_sa;
iterator_t *children;
enumerator_t *children;
if (child)
{
children = ike_sa->create_child_sa_iterator(ike_sa);
while (children->iterate(children, (void**)&child_sa))
children = ike_sa->create_child_sa_enumerator(ike_sa);
while (children->enumerate(children, (void**)&child_sa))
{
if (streq(name, child_sa->get_name(child_sa)))
{
@@ -374,12 +374,12 @@ METHOD(stroke_control_t, rekey, void,
while (enumerator->enumerate(enumerator, &ike_sa))
{
child_sa_t *child_sa;
iterator_t *children;
enumerator_t *children;
if (child)
{
children = ike_sa->create_child_sa_iterator(ike_sa);
while (children->iterate(children, (void**)&child_sa))
children = ike_sa->create_child_sa_enumerator(ike_sa);
while (children->enumerate(children, (void**)&child_sa))
{
if ((name && streq(name, child_sa->get_name(child_sa))) ||
(id && id == child_sa->get_reqid(child_sa)))
@@ -486,8 +486,7 @@ METHOD(stroke_control_t, terminate_srcip, void,
METHOD(stroke_control_t, purge_ike, void,
private_stroke_control_t *this, stroke_msg_t *msg, FILE *out)
{
enumerator_t *enumerator;
iterator_t *iterator;
enumerator_t *enumerator, *children;
ike_sa_t *ike_sa;
child_sa_t *child_sa;
linked_list_t *list;
@@ -502,13 +501,13 @@ METHOD(stroke_control_t, purge_ike, void,
charon->controller, TRUE);
while (enumerator->enumerate(enumerator, &ike_sa))
{
iterator = ike_sa->create_child_sa_iterator(ike_sa);
if (!iterator->iterate(iterator, (void**)&child_sa))
children = ike_sa->create_child_sa_enumerator(ike_sa);
if (!children->enumerate(children, (void**)&child_sa))
{
list->insert_last(list,
(void*)(uintptr_t)ike_sa->get_unique_id(ike_sa));
}
iterator->destroy(iterator);
children->destroy(children);
}
enumerator->destroy(enumerator);
+2 -2
View File
@@ -576,7 +576,7 @@ METHOD(stroke_list_t, status, void,
while (enumerator->enumerate(enumerator, &ike_sa))
{
bool ike_printed = FALSE;
iterator_t *children = ike_sa->create_child_sa_iterator(ike_sa);
enumerator_t *children = ike_sa->create_child_sa_enumerator(ike_sa);
if (name == NULL || streq(name, ike_sa->get_name(ike_sa)))
{
@@ -585,7 +585,7 @@ METHOD(stroke_list_t, status, void,
ike_printed = TRUE;
}
while (children->iterate(children, (void**)&child_sa))
while (children->enumerate(children, (void**)&child_sa))
{
if (name == NULL || streq(name, child_sa->get_name(child_sa)))
{
+3 -4
View File
@@ -76,8 +76,7 @@ static void write_fifo(private_uci_control_t *this, char *format, ...)
*/
static void status(private_uci_control_t *this, char *name)
{
enumerator_t *configs, *sas;
iterator_t *children;
enumerator_t *configs, *sas, *children;
ike_sa_t *ike_sa;
child_sa_t *child_sa;
peer_cfg_t *peer_cfg;
@@ -111,8 +110,8 @@ static void status(private_uci_control_t *this, char *name)
fprintf(out, "%-8s %-20D %-16H ", ike_sa->get_name(ike_sa),
ike_sa->get_other_id(ike_sa), ike_sa->get_other_host(ike_sa));
children = ike_sa->create_child_sa_iterator(ike_sa);
while (children->iterate(children, (void**)&child_sa))
children = ike_sa->create_child_sa_enumerator(ike_sa);
while (children->enumerate(children, (void**)&child_sa))
{
fprintf(out, "%#R",
child_sa->get_traffic_selectors(child_sa, FALSE));