summaryrefslogtreecommitdiff
path: root/src/core/gnunet-service-core.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-10-02 22:16:00 +0000
committerChristian Grothoff <christian@grothoff.org>2011-10-02 22:16:00 +0000
commit3d649e65b8b391984c009761e892b0bd6fc68df8 (patch)
treef79068122e67013544ac4e015efd2e510bedd49b /src/core/gnunet-service-core.c
parent4936dfe158a108081f18d1c77887ed0fb97f4265 (diff)
downloadgnunet-3d649e65b8b391984c009761e892b0bd6fc68df8.tar.gz
gnunet-3d649e65b8b391984c009761e892b0bd6fc68df8.zip
fix #1713 (see discussion there)
Diffstat (limited to 'src/core/gnunet-service-core.c')
-rw-r--r--src/core/gnunet-service-core.c6
1 files changed, 5 insertions, 1 deletions
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)
2492 struct GNUNET_TIME_Absolute now; 2492 struct GNUNET_TIME_Absolute now;
2493 struct GNUNET_TIME_Relative delta; 2493 struct GNUNET_TIME_Relative delta;
2494 int disc; 2494 int disc;
2495 unsigned int queue_length;
2495 2496
2496 disc = GNUNET_NO; 2497 disc = GNUNET_NO;
2497 now = GNUNET_TIME_absolute_get (); 2498 now = GNUNET_TIME_absolute_get ();
2498 prev = NULL; 2499 prev = NULL;
2500 queue_length = 0;
2499 pos = n->messages; 2501 pos = n->messages;
2500 while (pos != NULL) 2502 while (pos != NULL)
2501 { 2503 {
2504 queue_length++;
2502 next = pos->next; 2505 next = pos->next;
2503 delta = GNUNET_TIME_absolute_get_difference (pos->deadline, now); 2506 delta = GNUNET_TIME_absolute_get_difference (pos->deadline, now);
2504 if (delta.rel_value > PAST_EXPIRATION_DISCARD_TIME.rel_value) 2507 if (delta.rel_value > PAST_EXPIRATION_DISCARD_TIME.rel_value)
@@ -2523,7 +2526,8 @@ discard_expired_messages (struct Neighbour *n)
2523 prev = pos; 2526 prev = pos;
2524 pos = next; 2527 pos = next;
2525 } 2528 }
2526 if (GNUNET_YES == disc) 2529 if ( (GNUNET_YES == disc) &&
2530 (queue_length == MAX_PEER_QUEUE_SIZE) )
2527 schedule_peer_messages (n); 2531 schedule_peer_messages (n);
2528} 2532}
2529 2533