From: Martin Willi Date: Tue, 29 Sep 2009 09:30:44 +0000 (+0200) Subject: Do not sync a delete for a child in a destroying IKE_SA X-Git-Tag: 4.4.0~72 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f4f394e67c5f525b880b915f193cf2878ade4a03;p=thirdparty%2Fstrongswan.git Do not sync a delete for a child in a destroying IKE_SA --- diff --git a/src/charon/plugins/ha_sync/ha_sync_child.c b/src/charon/plugins/ha_sync/ha_sync_child.c index 9f200eccba..b167314c40 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;