From: Christian Grothoff Date: Sun, 2 Oct 2011 22:16:00 +0000 (+0000) Subject: fix #1713 (see discussion there) X-Git-Tag: initial-import-from-subversion-38251~16841 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3d649e65b8b391984c009761e892b0bd6fc68df8;p=oweals%2Fgnunet.git fix #1713 (see discussion there) --- diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index bb10935c1..944159b65 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c @@ -2492,13 +2492,16 @@ discard_expired_messages (struct Neighbour *n) 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) @@ -2523,7 +2526,8 @@ discard_expired_messages (struct Neighbour *n) prev = pos; pos = next; } - if (GNUNET_YES == disc) + if ( (GNUNET_YES == disc) && + (queue_length == MAX_PEER_QUEUE_SIZE) ) schedule_peer_messages (n); }