*/
u_int retransmitted;
+ /**
+ * TRUE if any retransmits have been sent for this message (counter is
+ * reset if deferred)
+ */
+ bool retransmit_sent;
+
/**
* packet(s) for retransmission
*/
this->initiating.retransmitted, message_id);
charon->bus->alert(charon->bus, ALERT_RETRANSMIT_SEND, packet,
this->initiating.retransmitted);
+ this->initiating.retransmit_sent = TRUE;
}
if (!mobike)
{
message->set_exchange_type(message, exchange);
this->initiating.type = exchange;
this->initiating.retransmitted = 0;
+ this->initiating.retransmit_sent = FALSE;
this->initiating.deferred = FALSE;
enumerator = array_create_enumerator(this->active_tasks);
}
enumerator->destroy(enumerator);
- if (this->initiating.retransmitted > 1)
+ if (this->initiating.retransmit_sent)
{
packet_t *packet = NULL;
array_get(this->initiating.packets, 0, &packet);