diff options
author | Martin Willi <martin@revosec.ch> | 2010-02-26 11:07:56 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-02-26 11:44:34 +0100 |
commit | 347488bd6764c7bbb022287f70734df7c70cabe2 (patch) | |
tree | 3f81b9203a00e1bf04390d0525b9b357476bbf48 /src | |
parent | ed5fc4cafe46abaa21282591756b6d98aab8df33 (diff) | |
download | strongswan-347488bd6764c7bbb022287f70734df7c70cabe2.tar.bz2 strongswan-347488bd6764c7bbb022287f70734df7c70cabe2.tar.xz |
Process ike_vendor task before ike_init, fixes support for private algs in IKE
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/sa/ike_sa.c | 4 | ||||
-rw-r--r-- | src/charon/sa/task_manager.c | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/charon/sa/ike_sa.c b/src/charon/sa/ike_sa.c index dd523fe84..c3a1b9407 100644 --- a/src/charon/sa/ike_sa.c +++ b/src/charon/sa/ike_sa.c @@ -1191,10 +1191,10 @@ static status_t initiate(private_ike_sa_t *this, set_condition(this, COND_ORIGINAL_INITIATOR, TRUE); - task = (task_t*)ike_init_create(&this->public, TRUE, NULL); - this->task_manager->queue_task(this->task_manager, task); task = (task_t*)ike_vendor_create(&this->public, TRUE); this->task_manager->queue_task(this->task_manager, task); + task = (task_t*)ike_init_create(&this->public, TRUE, NULL); + this->task_manager->queue_task(this->task_manager, task); task = (task_t*)ike_natd_create(&this->public, TRUE); this->task_manager->queue_task(this->task_manager, task); task = (task_t*)ike_cert_pre_create(&this->public, TRUE); diff --git a/src/charon/sa/task_manager.c b/src/charon/sa/task_manager.c index 2432ce75c..eeda6c860 100644 --- a/src/charon/sa/task_manager.c +++ b/src/charon/sa/task_manager.c @@ -307,11 +307,11 @@ static status_t build_request(private_task_manager_t *this) switch (this->ike_sa->get_state(this->ike_sa)) { case IKE_CREATED: + activate_task(this, IKE_VENDOR); if (activate_task(this, IKE_INIT)) { this->initiating.mid = 0; exchange = IKE_SA_INIT; - activate_task(this, IKE_VENDOR); activate_task(this, IKE_NATD); activate_task(this, IKE_CERT_PRE); #ifdef ME @@ -696,10 +696,10 @@ static status_t process_request(private_task_manager_t *this, { case IKE_SA_INIT: { - task = (task_t*)ike_init_create(this->ike_sa, FALSE, NULL); - this->passive_tasks->insert_last(this->passive_tasks, task); task = (task_t*)ike_vendor_create(this->ike_sa, FALSE); this->passive_tasks->insert_last(this->passive_tasks, task); + task = (task_t*)ike_init_create(this->ike_sa, FALSE, NULL); + this->passive_tasks->insert_last(this->passive_tasks, task); task = (task_t*)ike_natd_create(this->ike_sa, FALSE); this->passive_tasks->insert_last(this->passive_tasks, task); task = (task_t*)ike_cert_pre_create(this->ike_sa, FALSE); |