aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/ike_sa.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-05-09 15:15:43 +0200
committerTobias Brunner <tobias@strongswan.org>2012-05-25 17:05:53 +0200
commit745714307256a5edd46a61ed06a9883872841702 (patch)
treeb2d837fb9e94fa2f12e690663799a442198d3e46 /src/libcharon/sa/ike_sa.c
parent23470d849ab714a8e9496359b1b4c214847655d1 (diff)
downloadstrongswan-745714307256a5edd46a61ed06a9883872841702.tar.bz2
strongswan-745714307256a5edd46a61ed06a9883872841702.tar.xz
During reauthentication reestablish IKE_SA even if deleting the old one fails.
Diffstat (limited to 'src/libcharon/sa/ike_sa.c')
-rw-r--r--src/libcharon/sa/ike_sa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c
index 71a072954..fc69ecb22 100644
--- a/src/libcharon/sa/ike_sa.c
+++ b/src/libcharon/sa/ike_sa.c
@@ -1627,6 +1627,12 @@ METHOD(ike_sa_t, retransmit, status_t,
}
case IKE_DELETING:
DBG1(DBG_IKE, "proper IKE_SA delete failed, peer not responding");
+ if (this->is_reauthenticating)
+ {
+ DBG1(DBG_IKE, "delete during reauthentication failed, "
+ "trying to reestablish IKE_SA anyway");
+ reestablish(this);
+ }
break;
case IKE_REKEYING:
DBG1(DBG_IKE, "rekeying IKE_SA failed, peer not responding");