aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/ikev1
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-10-19 11:32:20 +0200
committerMartin Willi <martin@revosec.ch>2012-11-29 10:22:51 +0100
commit3c79b7b7db0e36d593d8a425ec865e6b153157de (patch)
tree4f17bcd26b6c930a5c9ecfa9884084a153f8301b /src/libcharon/sa/ikev1
parent93ceaa7e64a78c849c3b594c7861382f75cc24a4 (diff)
downloadstrongswan-3c79b7b7db0e36d593d8a425ec865e6b153157de.tar.bz2
strongswan-3c79b7b7db0e36d593d8a425ec865e6b153157de.tar.xz
Add alerts for sent/received message retransmissions and timeout
Diffstat (limited to 'src/libcharon/sa/ikev1')
-rw-r--r--src/libcharon/sa/ikev1/task_manager_v1.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c
index 2ea636164..1ee833cce 100644
--- a/src/libcharon/sa/ikev1/task_manager_v1.c
+++ b/src/libcharon/sa/ikev1/task_manager_v1.c
@@ -293,6 +293,7 @@ static status_t retransmit_packet(private_task_manager_t *this, u_int32_t seqnr,
if (retransmitted > this->retransmit_tries)
{
DBG1(DBG_IKE, "giving up after %u retransmits", retransmitted - 1);
+ charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND_TIMEOUT, packet);
return DESTROY_ME;
}
t = (u_int32_t)(this->retransmit_timeout * 1000.0 *
@@ -302,6 +303,7 @@ static status_t retransmit_packet(private_task_manager_t *this, u_int32_t seqnr,
DBG1(DBG_IKE, "sending retransmit %u of %s message ID %u, seq %u",
retransmitted, seqnr < RESPONDING_SEQ ? "request" : "response",
mid, seqnr < RESPONDING_SEQ ? seqnr : seqnr - RESPONDING_SEQ);
+ charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND, packet);
}
charon->sender->send(charon->sender, packet->clone(packet));
lib->scheduler->schedule_job_ms(lib->scheduler, (job_t*)
@@ -1167,6 +1169,7 @@ METHOD(task_manager_t, process_message, status_t,
DBG1(DBG_IKE, "received retransmit of request with ID %u, "
"but no response to retransmit", mid);
}
+ charon->bus->alert(charon->bus, ALERT_RETRANSMIT_RECEIVE, msg);
return SUCCESS;
}
if (msg->get_exchange_type(msg) == TRANSACTION &&