task-manager: Add retransmit cleared alert

This commit is contained in:
Tobias Brunner 2016-05-03 11:23:43 +02:00
parent 9da65eaeb9
commit bd71ba0ffb
3 changed files with 16 additions and 0 deletions

View File

@ -105,6 +105,9 @@ enum alert_t {
* of the retransmit, if the message got fragmented only the first fragment
* is passed */
ALERT_RETRANSMIT_SEND,
/** received response for retransmitted request, argument is packet_t, if
* the message got fragmented only the first fragment is passed */
ALERT_RETRANSMIT_SEND_CLEARED,
/** sending retransmits timed out, argument is packet_t, if available and if
* the message got fragmented only the first fragment is passed */
ALERT_RETRANSMIT_SEND_TIMEOUT,

View File

@ -1181,6 +1181,12 @@ static status_t process_response(private_task_manager_t *this,
}
enumerator->destroy(enumerator);
if (this->initiating.retransmitted)
{
packet_t *packet = NULL;
array_get(this->initiating.packets, 0, &packet);
charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND_CLEARED, packet);
}
this->initiating.type = EXCHANGE_TYPE_UNDEFINED;
clear_packets(this->initiating.packets);

View File

@ -695,6 +695,13 @@ static status_t process_response(private_task_manager_t *this,
}
enumerator->destroy(enumerator);
if (this->initiating.retransmitted)
{
packet_t *packet = NULL;
array_get(this->initiating.packets, 0, &packet);
charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND_CLEARED, packet);
}
/* catch if we get resetted while processing */
this->reset = FALSE;
enumerator = array_create_enumerator(this->active_tasks);