- retransmitting of requests implemented

This commit is contained in:
Jan Hutter
2005-12-02 14:07:36 +00:00
parent ccb37df25d
commit 0df63d6be4
12 changed files with 188 additions and 22 deletions
@@ -46,6 +46,11 @@ struct private_retransmit_request_job_t {
* ID of the IKE_SA which the message belongs to.
*/
ike_sa_id_t *ike_sa_id;
/**
* Number of times a request was retransmitted
*/
u_int32_t retransmit_count;
};
@@ -65,6 +70,22 @@ static ike_sa_id_t *get_ike_sa_id(private_retransmit_request_job_t *this)
return this->ike_sa_id;
}
/**
* Implements retransmit_request_job_t.get_retransmit_count.
*/
static u_int32_t get_retransmit_count(private_retransmit_request_job_t *this)
{
return this->retransmit_count;
}
/**
* Implements retransmit_request_job_t.increase_retransmit_count.
*/
static void increase_retransmit_count(private_retransmit_request_job_t *this)
{
this->retransmit_count++;
}
/**
* Implements retransmit_request_job_t.get_message_id.
*/
@@ -100,9 +121,12 @@ retransmit_request_job_t *retransmit_request_job_create(u_int32_t message_id,ike
this->public.get_ike_sa_id = (ike_sa_id_t * (*)(retransmit_request_job_t *)) get_ike_sa_id;
this->public.get_message_id = (u_int32_t (*)(retransmit_request_job_t *)) get_message_id;
this->public.destroy = (void (*)(retransmit_request_job_t *)) destroy;
this->public.get_retransmit_count = (u_int32_t (*)(retransmit_request_job_t *)) get_retransmit_count;
this->public.increase_retransmit_count = (void (*)(retransmit_request_job_t *)) increase_retransmit_count;
/* private variables */
this->message_id = message_id;
this->retransmit_count = 0;
this->ike_sa_id = ike_sa_id->clone(ike_sa_id);
return &(this->public);
@@ -41,6 +41,21 @@ struct retransmit_request_job_t {
*/
job_t job_interface;
/**
* @brief Returns the retransmit count for a specific request.
*
* @param this calling retransmit_request_job_t object
* @return retransmit count of request
*/
u_int32_t (*get_retransmit_count) (retransmit_request_job_t *this);
/**
* @brief Increases number of retransmitt attemps.
*
* @param this calling retransmit_request_job_t object
*/
void (*increase_retransmit_count) (retransmit_request_job_t *this);
/**
* @brief Returns the message_id of the request to be resent
*