diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/gnunet-service-core.c | 6 |
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 | ||