From 02c36eeb8683016bdb7c6a21a279f0c9105ded6c Mon Sep 17 00:00:00 2001 From: Clavister OpenSource Date: Wed, 30 Nov 2011 10:39:29 +0100 Subject: [PATCH] IKEv1 XAuth: Adding "initiate" flag parameter to the initiate_xauth method, signalling whether or not to call the task_manager->initiate method after queueing the task. --- src/libcharon/processing/jobs/initiate_xauth_job.c | 3 +-- src/libcharon/sa/ike_sa.c | 8 ++++++-- src/libcharon/sa/ike_sa.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libcharon/processing/jobs/initiate_xauth_job.c b/src/libcharon/processing/jobs/initiate_xauth_job.c index 0ec12dfdb..98fbac039 100644 --- a/src/libcharon/processing/jobs/initiate_xauth_job.c +++ b/src/libcharon/processing/jobs/initiate_xauth_job.c @@ -52,8 +52,7 @@ METHOD(job_t, initiate, void, this->ike_sa_id); if (ike_sa) { - DBG1(DBG_IKE, "INITIATING XAUTH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - ike_sa->initiate_xauth(ike_sa); + ike_sa->initiate_xauth(ike_sa, TRUE); charon->ike_sa_manager->checkin(charon->ike_sa_manager, ike_sa); } destroy(this); diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index 2de57d693..0990111bf 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1019,11 +1019,15 @@ METHOD(ike_sa_t, initiate_mediated, status_t, #endif /* ME */ METHOD(ike_sa_t, initiate_xauth, status_t, - private_ike_sa_t *this) + private_ike_sa_t *this, bool initiate) { xauth_request_t *task = xauth_request_create(&this->public, TRUE); this->task_manager->queue_task(this->task_manager, (task_t*)task); - return this->task_manager->initiate(this->task_manager); + if(initiate) + { + return this->task_manager->initiate(this->task_manager); + } + return SUCCESS; } /** diff --git a/src/libcharon/sa/ike_sa.h b/src/libcharon/sa/ike_sa.h index bc3544f92..27eab5445 100644 --- a/src/libcharon/sa/ike_sa.h +++ b/src/libcharon/sa/ike_sa.h @@ -970,7 +970,7 @@ struct ike_sa_t { /** * Initiate an XAuth authentication exchange. */ - status_t (*initiate_xauth) (ike_sa_t *this); + status_t (*initiate_xauth) (ike_sa_t *this, bool initiate); }; /**