From 00d547119e8610302013ed1d91fb8c88664d7930 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 26 May 2017 18:16:40 +0200 Subject: [PATCH] ike: Apply retransmission_limit before applying the jitter --- src/libcharon/sa/ikev1/task_manager_v1.c | 8 ++++---- src/libcharon/sa/ikev2/task_manager_v2.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c index 89077b013d..48ec3e7f57 100644 --- a/src/libcharon/sa/ikev1/task_manager_v1.c +++ b/src/libcharon/sa/ikev1/task_manager_v1.c @@ -366,15 +366,15 @@ static status_t retransmit_packet(private_task_manager_t *this, uint32_t seqnr, } t = (uint32_t)(this->retransmit_timeout * 1000.0 * pow(this->retransmit_base, retransmitted)); + if (this->retransmit_limit) + { + t = min(t, this->retransmit_limit); + } if (this->retransmit_jitter) { max_jitter = (t / 100.0) * this->retransmit_jitter; t -= max_jitter * (random() / (RAND_MAX + 1.0)); } - if (this->retransmit_limit) - { - t = min(t, this->retransmit_limit); - } if (retransmitted) { DBG1(DBG_IKE, "sending retransmit %u of %s message ID %u, seq %u", diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c index d215596d2d..c2ddbc5886 100644 --- a/src/libcharon/sa/ikev2/task_manager_v2.c +++ b/src/libcharon/sa/ikev2/task_manager_v2.c @@ -362,15 +362,15 @@ METHOD(task_manager_t, retransmit, status_t, timeout = (uint32_t)(this->retransmit_timeout * 1000.0 * pow(this->retransmit_base, this->initiating.retransmitted)); + if (this->retransmit_limit) + { + timeout = min(timeout, this->retransmit_limit); + } if (this->retransmit_jitter) { max_jitter = (timeout / 100.0) * this->retransmit_jitter; timeout -= max_jitter * (random() / (RAND_MAX + 1.0)); } - if (this->retransmit_limit) - { - timeout = min(timeout, this->retransmit_limit); - } } else { -- 2.47.3