aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-11-23 13:50:01 +0100
committerMartin Willi <martin@strongswan.org>2009-11-23 13:50:01 +0100
commit06f02f993c6b0ac20ab648e75cc4ce965672da8a (patch)
tree71b60fc13f8c6ed5e42009dc36078e70a51b1bb3 /src
parent0d1d19b99d5cad06685fd62ba9021e510f6cd03e (diff)
downloadstrongswan-06f02f993c6b0ac20ab648e75cc4ce965672da8a.tar.bz2
strongswan-06f02f993c6b0ac20ab648e75cc4ce965672da8a.tar.xz
Do not recreate existing create_child subtask when retrying with different DH group
Diffstat (limited to 'src')
-rw-r--r--src/charon/sa/tasks/child_rekey.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/charon/sa/tasks/child_rekey.c b/src/charon/sa/tasks/child_rekey.c
index c3c9429c8..b5e4e84b4 100644
--- a/src/charon/sa/tasks/child_rekey.c
+++ b/src/charon/sa/tasks/child_rekey.c
@@ -152,9 +152,12 @@ static status_t build_i(private_child_rekey_t *this, message_t *message)
message->add_payload(message, (payload_t*)notify);
/* ... our CHILD_CREATE task does the hard work for us. */
+ if (!this->child_create)
+ {
+ this->child_create = child_create_create(this->ike_sa, config, TRUE,
+ NULL, NULL);
+ }
reqid = this->child_sa->get_reqid(this->child_sa);
- this->child_create = child_create_create(this->ike_sa, config, TRUE,
- NULL, NULL);
this->child_create->use_reqid(this->child_create, reqid);
this->child_create->task.build(&this->child_create->task, message);