diff options
author | Tobias Brunner <tobias@strongswan.org> | 2015-07-09 14:34:19 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2015-07-27 13:49:26 +0200 |
commit | 773fcb1605d413997450b59d114a1c035910cc58 (patch) | |
tree | d50d2454fedec0cc1fa167ffc6329fff4ba3305f | |
parent | 6f7a3b33bc044e0c212be54be74b9497d513ca86 (diff) | |
download | strongswan-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.c | 4 |
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); |