aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/sa/ike_sa.c
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/sa/ike_sa.c')
-rw-r--r--Source/charon/sa/ike_sa.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/Source/charon/sa/ike_sa.c b/Source/charon/sa/ike_sa.c
index 6abed041c..b9f80dfbb 100644
--- a/Source/charon/sa/ike_sa.c
+++ b/Source/charon/sa/ike_sa.c
@@ -210,7 +210,7 @@ struct private_ike_sa_t {
/**
* Last message id which was successfully replied.
*/
- u_int32_t last_replied_message_id;
+ int32_t last_replied_message_id;
/**
* a logger for this IKE_SA
@@ -431,8 +431,8 @@ static status_t resend_last_reply(private_ike_sa_t *this)
status_t retransmit_request (private_ike_sa_t *this, u_int32_t message_id)
{
packet_t *packet;
-
- if ((this->message_id_out -1) != message_id)
+
+ if (this->last_requested_message == NULL)
{
return NOT_FOUND;
}
@@ -441,12 +441,13 @@ status_t retransmit_request (private_ike_sa_t *this, u_int32_t message_id)
{
return NOT_FOUND;
}
-
- if (this->last_requested_message == NULL)
+
+ if ((this->last_requested_message->get_message_id(this->last_requested_message)) != message_id)
{
return NOT_FOUND;
}
+ this->logger->log(this->logger, CONTROL | MORE, "Going to retransmit message with id %d",message_id);
packet = this->last_requested_message->get_packet(this->last_requested_message);
charon->send_queue->add(charon->send_queue, packet);
@@ -713,7 +714,7 @@ static status_t send_request (private_ike_sa_t *this,message_t * message)
}
/* message counter can now be increased */
- this->logger->log(this->logger, CONTROL|MOST, "Increase message counter for outgoing messages");
+ this->logger->log(this->logger, CONTROL|MOST, "Increase message counter for outgoing messages from %d",this->message_id_out);
this->message_id_out++;
return SUCCESS;
}
@@ -796,7 +797,10 @@ static void reset_message_buffers (private_ike_sa_t *this)
*/
static void destroy (private_ike_sa_t *this)
{
- this->logger->log(this->logger, CONTROL | MORE, "Going to destroy IKE_SA");
+ this->logger->log(this->logger, CONTROL|MOST, "Going to destroy IKE SA %llu:%llu, role %s",
+ this->ike_sa_id->get_initiator_spi(this->ike_sa_id),
+ this->ike_sa_id->get_responder_spi(this->ike_sa_id),
+ this->ike_sa_id->is_initiator(this->ike_sa_id) ? "initiator" : "responder");
/* destroy child sa's */
this->logger->log(this->logger, CONTROL | MOST, "Destroy all child_sa's");