From 65359ccbbc0540d719d56d4d8de7e0d94c498145 Mon Sep 17 00:00:00 2001 From: Clavister OpenSource Date: Tue, 29 Nov 2011 09:15:59 +0100 Subject: [PATCH] IKEv1 XAuth: Add "initiate xauth" method, which adds the xauth task into the queue for initiation. --- src/libcharon/sa/ike_sa.c | 9 +++++++++ src/libcharon/sa/ike_sa.h | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index a66d2a848..2de57d693 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1018,6 +1018,14 @@ METHOD(ike_sa_t, initiate_mediated, status_t, } #endif /* ME */ +METHOD(ike_sa_t, initiate_xauth, status_t, + private_ike_sa_t *this) +{ + 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); +} + /** * Resolve DNS host in configuration */ @@ -2085,6 +2093,7 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id, bool initiator, .callback = _callback, .respond = _respond, #endif /* ME */ + .initiate_xauth = _initiate_xauth, }, .ike_sa_id = ike_sa_id->clone(ike_sa_id), .version = version, diff --git a/src/libcharon/sa/ike_sa.h b/src/libcharon/sa/ike_sa.h index 832f8f141..882de41b2 100644 --- a/src/libcharon/sa/ike_sa.h +++ b/src/libcharon/sa/ike_sa.h @@ -966,6 +966,11 @@ struct ike_sa_t { * Destroys a ike_sa_t object. */ void (*destroy) (ike_sa_t *this); + + /** + * Initiate an XAuth authentication exchange. + */ + status_t (*initiate_xauth) (ike_sa_t *this); }; /**