corrected the logging for retransmissions of connectivity checks

This commit is contained in:
Tobias Brunner
2008-04-07 14:45:39 +00:00
parent b03c1d415c
commit dd563e60df
+8 -6
View File
@@ -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);
}