diff options
author | Tobias Brunner <tobias@strongswan.org> | 2016-08-24 11:34:36 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2016-09-06 10:09:17 +0200 |
commit | d9fe0ec7122c1890836226f703a9774958876f3e (patch) | |
tree | ff0af32cb1541af27be38cf54b5f1ad742dbb4ed | |
parent | fd1662cdbda94ed5b63cf67aad2ed4af973a30cb (diff) | |
download | strongswan-d9fe0ec7122c1890836226f703a9774958876f3e.tar.bz2 strongswan-d9fe0ec7122c1890836226f703a9774958876f3e.tar.xz |
ikev2: (Re-)Queue tasks used to establish an IKE_SA in reset()
Some tasks might get removed immediately once the IKE_SA_INIT response has
been handled even if there were notifies that require a restart of the
IKE_SA (e.g. COOKIE or INVALID_KE_PAYLOAD). Such a task is ike_vendor,
which caused vendor IDs not to get sent in a retry. This change ensures
all required tasks are queued after the reset, which some callers did
already anyway.
-rw-r--r-- | src/libcharon/sa/ike_sa.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index 009277ddd..239e260b1 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -921,6 +921,7 @@ METHOD(ike_sa_t, reset, void, this->ike_sa_id->is_initiator(this->ike_sa_id)); this->task_manager->reset(this->task_manager, 0, 0); + this->task_manager->queue_ike(this->task_manager); } METHOD(ike_sa_t, get_keymat, keymat_t*, @@ -1831,7 +1832,6 @@ METHOD(ike_sa_t, reauth, status_t, DBG0(DBG_IKE, "reinitiating IKE_SA %s[%d]", get_name(this), this->unique_id); reset(this); - this->task_manager->queue_ike(this->task_manager); return this->task_manager->initiate(this->task_manager); } /* we can't reauthenticate as responder when we use EAP or virtual IPs. @@ -2335,7 +2335,6 @@ METHOD(ike_sa_t, retransmit, status_t, this->keyingtry + 1, tries); reset(this); resolve_hosts(this); - this->task_manager->queue_ike(this->task_manager); return this->task_manager->initiate(this->task_manager); } DBG1(DBG_IKE, "establishing IKE_SA failed, peer not responding"); |