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); }; /**