diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c index ff75cb5c1..3c608e614 100644 --- a/src/libcharon/plugins/ha/ha_dispatcher.c +++ b/src/libcharon/plugins/ha/ha_dispatcher.c @@ -259,7 +259,10 @@ static void process_ike_add(private_ha_dispatcher_t *this, ha_message_t *message if (ok) { if (old_sa) - { + { /* register IKE_SA before calling inherit_post() so no scheduled + * jobs are lost */ + charon->ike_sa_manager->checkout_new(charon->ike_sa_manager, + old_sa); ike_sa->inherit_pre(ike_sa, old_sa); ike_sa->inherit_post(ike_sa, old_sa); charon->ike_sa_manager->checkin_and_destroy(