aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-07-18 10:12:20 +0200
committerTobias Brunner <tobias@strongswan.org>2013-07-18 10:40:08 +0200
commit07a9d5c91a3bd88fbfe5a36a807655bebfef42ae (patch)
tree7e377dd727c19a2dcf031d997beb47e0485535bf /src
parent2b0c8ee37dc21cce09cf5e5b75d738ebc79235f3 (diff)
downloadstrongswan-07a9d5c91a3bd88fbfe5a36a807655bebfef42ae.tar.bz2
strongswan-07a9d5c91a3bd88fbfe5a36a807655bebfef42ae.tar.xz
ike: Fix reestablishing SAs if no child-creating tasks are queued
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/sa/ike_sa.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c
index 508612034..2f4e1123c 100644
--- a/src/libcharon/sa/ike_sa.c
+++ b/src/libcharon/sa/ike_sa.c
@@ -1617,8 +1617,11 @@ METHOD(ike_sa_t, reestablish, status_t,
}
enumerator->destroy(enumerator);
/* check if we have tasks that recreate children */
- restart = is_child_queued(this, TASK_QUEUE_ACTIVE) ||
- is_child_queued(this, TASK_QUEUE_QUEUED);
+ if (!restart)
+ {
+ restart = is_child_queued(this, TASK_QUEUE_ACTIVE) ||
+ is_child_queued(this, TASK_QUEUE_QUEUED);
+ }
#ifdef ME
/* mediation connections have no children, keep them up anyway */
if (this->peer_cfg->is_mediation(this->peer_cfg))