aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2015-07-09 14:34:19 +0200
committerTobias Brunner <tobias@strongswan.org>2015-07-27 13:49:26 +0200
commit773fcb1605d413997450b59d114a1c035910cc58 (patch)
treed50d2454fedec0cc1fa167ffc6329fff4ba3305f
parent6f7a3b33bc044e0c212be54be74b9497d513ca86 (diff)
downloadstrongswan-773fcb1605d413997450b59d114a1c035910cc58.tar.bz2
strongswan-773fcb1605d413997450b59d114a1c035910cc58.tar.xz
trap-manager: Properly check-in IKE_SA if initiating fails
This basically reverts f4e822c1b422 ("trap-manager: don't check-in nonexisting IKE_SA if acquire fails"). As checkout_by_config() could return an already existing and established IKE_SA we have to properly destroy it, for instance, in case other threads are waiting to check it out. checkin_and_destroy() should handle the case of a new SA properly (it produces a log message on level 1, though).
-rw-r--r--src/libcharon/sa/trap_manager.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c
index d6ff3c8c5..3a70bd135 100644
--- a/src/libcharon/sa/trap_manager.c
+++ b/src/libcharon/sa/trap_manager.c
@@ -377,8 +377,8 @@ METHOD(trap_manager_t, acquire, void,
}
else
{
- ike_sa->destroy(ike_sa);
- charon->bus->set_sa(charon->bus, NULL);
+ charon->ike_sa_manager->checkin_and_destroy(charon->ike_sa_manager,
+ ike_sa);
}
}
peer->destroy(peer);