From cbc1a20ffe69fae5ae7fc216873c7ee7d737e103 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 21 May 2012 14:05:01 +0200 Subject: [PATCH] Wrap task managers flush_queue() in IKE_SA --- src/libcharon/sa/ike_sa.c | 7 +++++++ src/libcharon/sa/ike_sa.h | 7 +++++++ 2 files changed, 14 insertions(+) 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 @@ -968,6 +968,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. *