* Task scheduled for transmitting the next ACK to the
* other peer.
*/
- GNUNET_SCHEDULER_TaskIdentifier ack_task;
+ struct GNUNET_SCHEDULER_Task * ack_task;
/**
* When did we receive which fragment? Used to calculate
{
struct GNUNET_DEFRAGMENT_Context *dc;
- dc = GNUNET_malloc (sizeof (struct GNUNET_DEFRAGMENT_Context));
+ dc = GNUNET_new (struct GNUNET_DEFRAGMENT_Context);
dc->stats = stats;
dc->cls = cls;
dc->proc = proc;
{
GNUNET_CONTAINER_DLL_remove (dc->head, dc->tail, mc);
dc->list_size--;
- if (GNUNET_SCHEDULER_NO_TASK != mc->ack_task)
+ if (NULL != mc->ack_task)
{
GNUNET_SCHEDULER_cancel (mc->ack_task);
- mc->ack_task = GNUNET_SCHEDULER_NO_TASK;
+ mc->ack_task = NULL;
}
GNUNET_free (mc);
}
struct GNUNET_DEFRAGMENT_Context *dc = mc->dc;
struct FragmentAcknowledgement fa;
- mc->ack_task = GNUNET_SCHEDULER_NO_TASK;
+ mc->ack_task = NULL;
fa.header.size = htons (sizeof (struct FragmentAcknowledgement));
fa.header.type = htons (GNUNET_MESSAGE_TYPE_FRAGMENT_ACK);
fa.fragment_id = htonl (mc->fragment_id);
GNUNET_assert (NULL != old);
GNUNET_CONTAINER_DLL_remove (dc->head, dc->tail, old);
dc->list_size--;
- if (GNUNET_SCHEDULER_NO_TASK != old->ack_task)
+ if (NULL != old->ack_task)
{
GNUNET_SCHEDULER_cancel (old->ack_task);
- old->ack_task = GNUNET_SCHEDULER_NO_TASK;
+ old->ack_task = NULL;
}
GNUNET_free (old);
}
for (mc = dc->head; NULL != mc; mc = mc->next)
if (mc->fragment_id > fid)
last++;
-
+
mc = dc->head;
while ((NULL != mc) && (fid != mc->fragment_id))
mc = mc->next;
}
/* send ACK */
if (mc->frag_times_write_offset - mc->frag_times_start_offset > 1)
- {
+ {
dc->latency = estimate_latency (mc);
}
delay = GNUNET_TIME_relative_multiply (dc->latency, bc + 1);
if ( (last + fid == num_fragments) ||
- (0 == mc->bits) ||
- (GNUNET_YES == duplicate))
+ (0 == mc->bits) ||
+ (GNUNET_YES == duplicate))
{
/* message complete or duplicate or last missing fragment in
linear sequence; ACK now! */
delay = GNUNET_TIME_UNIT_ZERO;
}
- if (GNUNET_SCHEDULER_NO_TASK != mc->ack_task)
+ if (NULL != mc->ack_task)
GNUNET_SCHEDULER_cancel (mc->ack_task);
mc->ack_task = GNUNET_SCHEDULER_add_delayed (delay, &send_ack, mc);
if (duplicate == GNUNET_YES)