aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-05-21 14:05:01 +0200
committerMartin Willi <martin@revosec.ch>2012-05-21 14:05:01 +0200
commitcbc1a20ffe69fae5ae7fc216873c7ee7d737e103 (patch)
tree5dc4911d853dbba01abce6f356cd5ab197d0e5b3 /src
parenta5c799602ffbd4d30253f40224f8acbb2ccdca3b (diff)
downloadstrongswan-cbc1a20ffe69fae5ae7fc216873c7ee7d737e103.tar.bz2
strongswan-cbc1a20ffe69fae5ae7fc216873c7ee7d737e103.tar.xz
Wrap task managers flush_queue() in IKE_SA
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/sa/ike_sa.c7
-rw-r--r--src/libcharon/sa/ike_sa.h7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c
index 54bc109d5..967ad75f2 100644
--- a/src/libcharon/sa/ike_sa.c
+++ b/src/libcharon/sa/ike_sa.c
@@ -1787,6 +1787,12 @@ METHOD(ike_sa_t, create_task_enumerator, enumerator_t*,
return this->task_manager->create_task_enumerator(this->task_manager, queue);
}
+METHOD(ike_sa_t, flush_queue, void,
+ private_ike_sa_t *this, task_queue_t queue)
+{
+ this->task_manager->flush_queue(this->task_manager, queue);
+}
+
METHOD(ike_sa_t, queue_task, void,
private_ike_sa_t *this, task_t *task)
{
@@ -2058,6 +2064,7 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id, bool initiator,
.add_configuration_attribute = _add_configuration_attribute,
.set_kmaddress = _set_kmaddress,
.create_task_enumerator = _create_task_enumerator,
+ .flush_queue = _flush_queue,
.queue_task = _queue_task,
#ifdef ME
.act_as_mediation_server = _act_as_mediation_server,
diff --git a/src/libcharon/sa/ike_sa.h b/src/libcharon/sa/ike_sa.h
index 0644bab78..a3c3de81c 100644
--- a/src/libcharon/sa/ike_sa.h
+++ b/src/libcharon/sa/ike_sa.h
@@ -969,6 +969,13 @@ struct ike_sa_t {
enumerator_t* (*create_task_enumerator)(ike_sa_t *this, task_queue_t queue);
/**
+ * Flush a task queue, cancelling all tasks in it.
+ *
+ * @param queue queue type to flush
+ */
+ void (*flush_queue)(ike_sa_t *this, task_queue_t queue);
+
+ /**
* Queue a task for initiaton to the task manager.
*
* @param task task to queue