* peer_cfg (and the old hosts), but before resolving the hosts anew.
* It is not invoked on the responder.
*
+ * If this is called during a reauthentication, COND_REAUTHENTICATING is
+ * set on the old IKE_SA and the hosts are not resolved anew.
+ *
* @param old IKE_SA getting reestablished (is destroyed)
* @param new new IKE_SA replacing old (gets established)
* @return TRUE to stay registered, FALSE to unregister
new->set_other_host(new, host->clone(host));
host = this->ike_sa->get_my_host(this->ike_sa);
new->set_my_host(new, host->clone(host));
+ charon->bus->ike_reestablish_pre(charon->bus, this->ike_sa, new);
enumerator = this->ike_sa->create_virtual_ip_enumerator(this->ike_sa, TRUE);
while (enumerator->enumerate(enumerator, &host))
{
#endif /* ME */
)
{
+ charon->bus->ike_reestablish_post(charon->bus, this->ike_sa, new,
+ FALSE);
charon->ike_sa_manager->checkin_and_destroy(charon->ike_sa_manager, new);
DBG1(DBG_IKE, "unable to reauthenticate IKE_SA, no CHILD_SA "
"to recreate");
new->queue_task(new, (task_t*)ike_verify_peer_cert_create(new));
new->queue_task(new, (task_t*)ike_reauth_complete_create(new,
this->ike_sa->get_id(this->ike_sa)));
+ charon->bus->ike_reestablish_post(charon->bus, this->ike_sa, new,
+ TRUE);
charon->ike_sa_manager->checkin(charon->ike_sa_manager, new);
}
else
{
+ charon->bus->ike_reestablish_post(charon->bus, this->ike_sa, new,
+ FALSE);
charon->ike_sa_manager->checkin_and_destroy(charon->ike_sa_manager, new);
DBG1(DBG_IKE, "reauthenticating IKE_SA failed");
}