diff --git a/src/charon/plugins/ha_sync/ha_sync_child.c b/src/charon/plugins/ha_sync/ha_sync_child.c index 9f200eccb..b167314c4 100644 --- a/src/charon/plugins/ha_sync/ha_sync_child.c +++ b/src/charon/plugins/ha_sync/ha_sync_child.c @@ -116,7 +116,9 @@ static bool child_keys(private_ha_sync_child_t *this, ike_sa_t *ike_sa, static bool child_state_change(private_ha_sync_child_t *this, ike_sa_t *ike_sa, child_sa_t *child_sa, child_sa_state_t state) { - if (!ike_sa || ike_sa->get_state(ike_sa) == IKE_PASSIVE) + if (!ike_sa || + ike_sa->get_state(ike_sa) == IKE_PASSIVE || + ike_sa->get_state(ike_sa) == IKE_DESTROYING) { /* only sync active IKE_SAs */ return TRUE; } @@ -125,6 +127,7 @@ static bool child_state_change(private_ha_sync_child_t *this, ike_sa_t *ike_sa, return TRUE; } + if (state == CHILD_DESTROYING) { ha_sync_message_t *m;