From: Martin Willi Date: Wed, 14 Dec 2011 14:27:12 +0000 (+0100) Subject: Use the IKEv1 specific delete in IKEv1 SAs X-Git-Tag: 5.0.0~338^2~9^2~212 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5f23be840bd90c874ca14a8a036cf8de647edc68;p=thirdparty%2Fstrongswan.git Use the IKEv1 specific delete in IKEv1 SAs --- diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index 11e7b18d26..fa07f58768 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -1373,14 +1374,21 @@ METHOD(ike_sa_t, destroy_child_sa, status_t, METHOD(ike_sa_t, delete_, status_t, private_ike_sa_t *this) { - ike_delete_t *ike_delete; + task_t *task; switch (this->state) { case IKE_ESTABLISHED: case IKE_REKEYING: - ike_delete = ike_delete_create(&this->public, TRUE); - this->task_manager->queue_task(this->task_manager, &ike_delete->task); + if (this->version == IKEV1) + { + task = (task_t*)isakmp_delete_create(&this->public, TRUE); + } + else + { + task = (task_t*)ike_delete_create(&this->public, TRUE); + } + this->task_manager->queue_task(this->task_manager, task); return this->task_manager->initiate(this->task_manager); case IKE_CREATED: DBG1(DBG_IKE, "deleting unestablished IKE_SA"); diff --git a/src/libcharon/sa/task_manager_v1.c b/src/libcharon/sa/task_manager_v1.c index baf7bb4371..bdb55a07e2 100755 --- a/src/libcharon/sa/task_manager_v1.c +++ b/src/libcharon/sa/task_manager_v1.c @@ -334,7 +334,7 @@ METHOD(task_manager_t, initiate, status_t, exchange = INFORMATIONAL_V1; new_mid = TRUE; } - if (activate_task(this, TASK_IKE_DELETE)) + if (activate_task(this, TASK_ISAKMP_DELETE)) { exchange = INFORMATIONAL_V1; new_mid = TRUE; diff --git a/src/libcharon/sa/tasks/informational.c b/src/libcharon/sa/tasks/informational.c index c2c6aa5fa4..5391dd32f3 100644 --- a/src/libcharon/sa/tasks/informational.c +++ b/src/libcharon/sa/tasks/informational.c @@ -16,7 +16,7 @@ #include "informational.h" #include -#include +#include #include #include @@ -99,8 +99,8 @@ METHOD(task_t, process_r, status_t, delete = (delete_payload_t*)payload; if (delete->get_protocol_id(delete) == PROTO_IKE) { - this->del = (task_t*)ike_delete_create(this->ike_sa, - FALSE); + this->del = (task_t*)isakmp_delete_create(this->ike_sa, + FALSE); } else {