diff options
author | Tobias Brunner <tobias@strongswan.org> | 2014-07-28 14:09:10 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2014-09-12 10:29:37 +0200 |
commit | acd69fc291bea4f8e85680505af0bd751e8b36a9 (patch) | |
tree | 9cbfe4387a759a4ebe624c41e126ebdc07a143df | |
parent | de6ab8e85a5f8e37a0e055b0eeb0a3e5042b1fb2 (diff) | |
download | strongswan-acd69fc291bea4f8e85680505af0bd751e8b36a9.tar.bz2 strongswan-acd69fc291bea4f8e85680505af0bd751e8b36a9.tar.xz |
ikev2: Reduce timeout if path probing was enabled
-rw-r--r-- | src/libcharon/sa/ikev2/task_manager_v2.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c index c73bf0168..58f6bc61d 100644 --- a/src/libcharon/sa/ikev2/task_manager_v2.c +++ b/src/libcharon/sa/ikev2/task_manager_v2.c @@ -274,13 +274,20 @@ METHOD(task_manager_t, retransmit, status_t, packet = this->initiating.packet->clone(this->initiating.packet); charon->sender->send(charon->sender, packet); } - else if (!mobike->transmit(mobike, this->initiating.packet)) + else { - DBG1(DBG_IKE, "no route found to reach peer, MOBIKE update " - "deferred"); - this->ike_sa->set_condition(this->ike_sa, COND_STALE, TRUE); - this->initiating.deferred = TRUE; - return SUCCESS; + if (!mobike->transmit(mobike, this->initiating.packet)) + { + DBG1(DBG_IKE, "no route found to reach peer, MOBIKE update " + "deferred"); + this->ike_sa->set_condition(this->ike_sa, COND_STALE, TRUE); + this->initiating.deferred = TRUE; + return SUCCESS; + } + else if (mobike->is_probing(mobike)) + { + timeout = ROUTEABILITY_CHECK_INTERVAL; + } } } else |