- explicitely drop oldest message
authorBart Polot <bart@net.in.tum.de>
Mon, 27 Aug 2012 14:51:34 +0000 (14:51 +0000)
committerBart Polot <bart@net.in.tum.de>
Mon, 27 Aug 2012 14:51:34 +0000 (14:51 +0000)
src/mesh/gnunet-service-mesh.c

index f301a9a4db8aea088f461284f44a8b6c45ea9668..34e4a368195344b0485c6920240f084408585246 100644 (file)
@@ -4818,8 +4818,10 @@ queue_add (void *cls, uint16_t type, size_t size,
   i = (cinfo->send_buffer_start + cinfo->send_buffer_n) % t->fwd_queue_max;
   if (NULL != cinfo->send_buffer[i])
   {
-    queue_destroy(cinfo->send_buffer[i], GNUNET_YES);
-    GNUNET_break (cinfo->send_buffer_n > 0);
+    GNUNET_break (cinfo->send_buffer_n == t->fwd_queue_max); // aka i == start
+    queue_destroy(cinfo->send_buffer[cinfo->send_buffer_start], GNUNET_YES);
+    cinfo->send_buffer_start++;
+    cinfo->send_buffer_start %= t->fwd_queue_max;
     cinfo->send_buffer_n--;
   }
   cinfo->send_buffer[i] = queue;