struct GNUNET_TIME_Absolute now;
struct GNUNET_TIME_Relative delta;
int disc;
+ unsigned int queue_length;
disc = GNUNET_NO;
now = GNUNET_TIME_absolute_get ();
prev = NULL;
+ queue_length = 0;
pos = n->messages;
while (pos != NULL)
{
+ queue_length++;
next = pos->next;
delta = GNUNET_TIME_absolute_get_difference (pos->deadline, now);
if (delta.rel_value > PAST_EXPIRATION_DISCARD_TIME.rel_value)
prev = pos;
pos = next;
}
- if (GNUNET_YES == disc)
+ if ( (GNUNET_YES == disc) &&
+ (queue_length == MAX_PEER_QUEUE_SIZE) )
schedule_peer_messages (n);
}