Do not sync a delete for a child in a destroying IKE_SA
authorMartin Willi <martin@strongswan.org>
Tue, 29 Sep 2009 09:30:44 +0000 (11:30 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 7 Apr 2010 11:55:15 +0000 (13:55 +0200)
src/charon/plugins/ha_sync/ha_sync_child.c

index 9f200ec..b167314 100644 (file)
@@ -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;