diff options
-rw-r--r-- | src/charon/sa/tasks/child_delete.c | 11 |
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; } |