Slightly change IKE_SA destruction order to inherit properly during ike_rekey task destruction
This commit is contained in:
@@ -1989,6 +1989,7 @@ METHOD(ike_sa_t, destroy, void,
|
|||||||
charon->bus->set_sa(charon->bus, &this->public);
|
charon->bus->set_sa(charon->bus, &this->public);
|
||||||
|
|
||||||
set_state(this, IKE_DESTROYING);
|
set_state(this, IKE_DESTROYING);
|
||||||
|
this->task_manager->destroy(this->task_manager);
|
||||||
|
|
||||||
/* remove attributes first, as we pass the IKE_SA to the handler */
|
/* remove attributes first, as we pass the IKE_SA to the handler */
|
||||||
while (this->attributes->remove_last(this->attributes,
|
while (this->attributes->remove_last(this->attributes,
|
||||||
@@ -2006,7 +2007,6 @@ METHOD(ike_sa_t, destroy, void,
|
|||||||
/* unset SA after here to avoid usage by the listeners */
|
/* unset SA after here to avoid usage by the listeners */
|
||||||
charon->bus->set_sa(charon->bus, NULL);
|
charon->bus->set_sa(charon->bus, NULL);
|
||||||
|
|
||||||
this->task_manager->destroy(this->task_manager);
|
|
||||||
this->keymat->destroy(this->keymat);
|
this->keymat->destroy(this->keymat);
|
||||||
|
|
||||||
if (this->my_virtual_ip)
|
if (this->my_virtual_ip)
|
||||||
|
|||||||
@@ -161,12 +161,12 @@ static void flush(private_task_manager_t *this)
|
|||||||
{
|
{
|
||||||
this->queued_tasks->destroy_offset(this->queued_tasks,
|
this->queued_tasks->destroy_offset(this->queued_tasks,
|
||||||
offsetof(task_t, destroy));
|
offsetof(task_t, destroy));
|
||||||
|
this->queued_tasks = linked_list_create();
|
||||||
this->passive_tasks->destroy_offset(this->passive_tasks,
|
this->passive_tasks->destroy_offset(this->passive_tasks,
|
||||||
offsetof(task_t, destroy));
|
offsetof(task_t, destroy));
|
||||||
|
this->passive_tasks = linked_list_create();
|
||||||
this->active_tasks->destroy_offset(this->active_tasks,
|
this->active_tasks->destroy_offset(this->active_tasks,
|
||||||
offsetof(task_t, destroy));
|
offsetof(task_t, destroy));
|
||||||
this->queued_tasks = linked_list_create();
|
|
||||||
this->passive_tasks = linked_list_create();
|
|
||||||
this->active_tasks = linked_list_create();
|
this->active_tasks = linked_list_create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user