aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/charon/sa/tasks/child_delete.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/charon/sa/tasks/child_delete.c b/src/charon/sa/tasks/child_delete.c
index 5258aa02a..4fb721445 100644
--- a/src/charon/sa/tasks/child_delete.c
+++ b/src/charon/sa/tasks/child_delete.c
@@ -135,10 +135,13 @@ static void process_payloads(private_child_delete_t *this, message_t *message)
/* we reply as usual, rekeying will fail */
break;
case CHILD_DELETING:
- /* we don't send back a delete */
- this->ike_sa->destroy_child_sa(this->ike_sa,
- protocol, *spi);
- continue;
+ /* we don't send back a delete if we initiated ourself */
+ if (!this->initiator)
+ {
+ this->ike_sa->destroy_child_sa(this->ike_sa,
+ protocol, *spi);
+ continue;
+ }
default:
break;
}