diff options
author | Tobias Brunner <tobias@strongswan.org> | 2008-04-07 14:45:39 +0000 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2008-04-07 14:45:39 +0000 |
commit | dd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54 (patch) | |
tree | b57ae3561b2d122ba939b2f345671c8cba17e091 | |
parent | b03c1d415c507652995aaa4ad36910f3308718bc (diff) | |
download | strongswan-dd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54.tar.bz2 strongswan-dd563e60df5c0c4aec11ab7c20cf7a4ca0e40c54.tar.xz |
corrected the logging for retransmissions of connectivity checks
-rw-r--r-- | src/charon/sa/connect_manager.c | 14 |
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); } |