- initiate IKE_SA deletion befor manager destruction

This commit is contained in:
Martin Willi
2006-05-24 09:02:39 +00:00
parent a13448dd2d
commit b82908b8b5
+9 -2
View File
@@ -805,16 +805,23 @@ static void destroy(private_ike_sa_manager_t *this)
} }
} }
this->logger->log(this->logger, CONTROL|LEVEL2, "Delete all IKE_SA's"); this->logger->log(this->logger, CONTROL|LEVEL2, "Delete all IKE_SA's");
/* Step 3: delete all entries */ /* Step 3: initiate deletion of all IKE_SAs */
iterator->reset(iterator);
while (iterator->has_next(iterator))
{
iterator->current(iterator, (void**)&entry);
entry->ike_sa->delete(entry->ike_sa);
}
iterator->destroy(iterator); iterator->destroy(iterator);
this->logger->log(this->logger, CONTROL|LEVEL2, "Destroy all entries");
/* Step 4: destroy all entries */
while (list->get_count(list) > 0) while (list->get_count(list) > 0)
{ {
list->get_first(list, (void**)&entry); list->get_first(list, (void**)&entry);
this->delete_entry(this, entry); this->delete_entry(this, entry);
} }
list->destroy(list); list->destroy(list);
this->logger->log(this->logger,CONTROL | LEVEL2,"IKE_SA's deleted");
pthread_mutex_unlock(&(this->mutex)); pthread_mutex_unlock(&(this->mutex));
this->randomizer->destroy(this->randomizer); this->randomizer->destroy(this->randomizer);