aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2008-04-07 14:45:39 +0000
committerTobias Brunner <tobias@strongswan.org>2008-04-07 14:45:39 +0000
commitdd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54 (patch)
treeb57ae3561b2d122ba939b2f345671c8cba17e091
parentb03c1d415c507652995aaa4ad36910f3308718bc (diff)
downloadstrongswan-dd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54.tar.bz2
strongswan-dd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54.tar.xz
corrected the logging for retransmissions of connectivity checks
-rw-r--r--src/charon/sa/connect_manager.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/charon/sa/connect_manager.c b/src/charon/sa/connect_manager.c
index 709f12502..2d5e68416 100644
--- a/src/charon/sa/connect_manager.c
+++ b/src/charon/sa/connect_manager.c
@@ -38,7 +38,7 @@
/* base for retransmissions */
#define ME_RETRANS_BASE 1.8
/* max number of retransmissions */
-#define ME_MAX_RETRANS 14
+#define ME_MAX_RETRANS 13
typedef struct private_connect_manager_t private_connect_manager_t;
@@ -957,10 +957,10 @@ static job_requeue_t retransmit(retransmit_data_t *data)
goto retransmit_end;
}
- if (++pair->retransmitted >= ME_MAX_RETRANS)
+ if (++pair->retransmitted > ME_MAX_RETRANS)
{
DBG2(DBG_IKE, "pair with id '%d' failed after %d retransmissions",
- data->mid, pair->retransmitted);
+ data->mid, ME_MAX_RETRANS);
pair->state = CHECK_FAILED;
goto retransmit_end;
}
@@ -996,12 +996,14 @@ static void queue_retransmission(private_connect_manager_t *this, check_list_t *
retransmit_data_t *data = retransmit_data_create(this, chunk_clone(checklist->connect_id), pair->id);
job_t *job = (job_t*)callback_job_create((callback_job_cb_t)retransmit, data, (callback_job_cleanup_t)retransmit_data_destroy, NULL);
+ u_int32_t retransmission = pair->retransmitted + 1;
u_int32_t rto = ME_INTERVAL;
- if (pair->retransmitted > ME_BOOST)
+ if (retransmission > ME_BOOST)
{
- rto = (u_int32_t)(ME_INTERVAL * pow(ME_RETRANS_BASE, pair->retransmitted - ME_BOOST));
+ rto = (u_int32_t)(ME_INTERVAL * pow(ME_RETRANS_BASE, retransmission - ME_BOOST));
}
- DBG2(DBG_IKE, "retransmission %d of pair '%d' in %dms", pair->retransmitted, pair->id, rto);
+ DBG2(DBG_IKE, "scheduling retransmission %d of pair '%d' in %dms", retransmission, pair->id, rto);
+
charon->scheduler->schedule_job(charon->scheduler, (job_t*)job, rto);
}