From 3d649e65b8b391984c009761e892b0bd6fc68df8 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 2 Oct 2011 22:16:00 +0000 Subject: fix #1713 (see discussion there) --- src/core/gnunet-service-core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/core/gnunet-service-core.c') 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); } -- cgit v1.2.3