diff options
author | Clavister OpenSource <opensource@clavister.com> | 2011-11-30 10:43:38 +0100 |
---|---|---|
committer | Clavister OpenSource <opensource@clavister.com> | 2012-03-20 17:31:10 +0100 |
commit | c5dc9d3383871e0e3b183bc2a166e45dec386ad6 (patch) | |
tree | 96539b3947cca8317986208bde446bc45867d90b /src/libcharon/sa/task_manager_v1.c | |
parent | 02c36eeb8683016bdb7c6a21a279f0c9105ded6c (diff) | |
download | strongswan-c5dc9d3383871e0e3b183bc2a166e45dec386ad6.tar.bz2 strongswan-c5dc9d3383871e0e3b183bc2a166e45dec386ad6.tar.xz |
IKEv1 XAuth: Moving the state change to IKE_CONNECTED until after XAuth exchanges are complete.
Diffstat (limited to 'src/libcharon/sa/task_manager_v1.c')
-rw-r--r-- | src/libcharon/sa/task_manager_v1.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libcharon/sa/task_manager_v1.c b/src/libcharon/sa/task_manager_v1.c index 915644bac..9008b607a 100644 --- a/src/libcharon/sa/task_manager_v1.c +++ b/src/libcharon/sa/task_manager_v1.c @@ -269,16 +269,17 @@ METHOD(task_manager_t, initiate, status_t, exchange = ID_PROT; } break; - case IKE_ESTABLISHED: - if (activate_task(this, TASK_QUICK_MODE)) + case IKE_CONNECTING: + if (activate_task(this, TASK_XAUTH_REQUEST)) { - exchange = QUICK_MODE; + exchange = TRANSACTION; new_mid = TRUE; - break; } - if (activate_task(this, TASK_XAUTH_REQUEST)) + break; + case IKE_ESTABLISHED: + if (activate_task(this, TASK_QUICK_MODE)) { - exchange = TRANSACTION; + exchange = QUICK_MODE; new_mid = TRUE; break; } @@ -508,6 +509,10 @@ static status_t process_request(private_task_manager_t *this, case INFORMATIONAL_V1: /* TODO-IKEv1: informational */ return FAILED; + case TRANSACTION: + task = (task_t *)xauth_request_create(this->ike_sa, FALSE); + this->passive_tasks->insert_last(this->passive_tasks, task); + break; default: return FAILED; } |