aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2014-07-28 14:09:10 +0200
committerTobias Brunner <tobias@strongswan.org>2014-09-12 10:29:37 +0200
commitacd69fc291bea4f8e85680505af0bd751e8b36a9 (patch)
tree9cbfe4387a759a4ebe624c41e126ebdc07a143df
parentde6ab8e85a5f8e37a0e055b0eeb0a3e5042b1fb2 (diff)
downloadstrongswan-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.c19
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