aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/sa/tasks/ike_rekey.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2007-06-14 08:13:05 +0000
committerMartin Willi <martin@strongswan.org>2007-06-14 08:13:05 +0000
commit26424f03c35bbfbcf264db950335c48c54c619fc (patch)
treeea08945ee744779da5319da72c1108690c518d67 /src/charon/sa/tasks/ike_rekey.c
parenteda454a26137b6a2d3a85d0eb3d84f7c827d7c7d (diff)
downloadstrongswan-26424f03c35bbfbcf264db950335c48c54c619fc.tar.bz2
strongswan-26424f03c35bbfbcf264db950335c48c54c619fc.tar.xz
proper reauthentication:
IKE_SA is closed completely before the new is initiated, resolves some issues when a dynamic IP is requested from a pool
Diffstat (limited to 'src/charon/sa/tasks/ike_rekey.c')
-rw-r--r--src/charon/sa/tasks/ike_rekey.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/charon/sa/tasks/ike_rekey.c b/src/charon/sa/tasks/ike_rekey.c
index 60cb1e63c..827f95156 100644
--- a/src/charon/sa/tasks/ike_rekey.c
+++ b/src/charon/sa/tasks/ike_rekey.c
@@ -170,8 +170,9 @@ static status_t process_i(private_ike_rekey_t *this, message_t *message)
{
case FAILED:
/* rekeying failed, fallback to old SA */
- if (!(this->collision &&
- this->collision->get_type(this->collision) == IKE_DELETE))
+ if (!(this->collision && (
+ this->collision->get_type(this->collision) == IKE_DELETE ||
+ this->collision->get_type(this->collision) == IKE_REAUTH)))
{
job_t *job;
u_int32_t retry = RETRY_INTERVAL - (random() % RETRY_JITTER);