[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r35654 - gnunet/src/cadet
From: |
gnunet |
Subject: |
[GNUnet-SVN] r35654 - gnunet/src/cadet |
Date: |
Mon, 27 Apr 2015 21:16:01 +0200 |
Author: bartpolot
Date: 2015-04-27 21:16:01 +0200 (Mon, 27 Apr 2015)
New Revision: 35654
Modified:
gnunet/src/cadet/gnunet-service-cadet_channel.c
Log:
- skip checking all messages that are not there, no matter what the bitfield
says
Modified: gnunet/src/cadet/gnunet-service-cadet_channel.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_channel.c 2015-04-27 19:15:59 UTC
(rev 35653)
+++ gnunet/src/cadet/gnunet-service-cadet_channel.c 2015-04-27 19:16:01 UTC
(rev 35654)
@@ -1060,15 +1060,18 @@
/* Did we run out of copies? (previously freed, it's ok) */
if (NULL == copy)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG, "run out of copies...\n");
- return;
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "run out of copies...\n");
+ return;
}
/* Did we overshoot the target? (previously freed, it's ok) */
if (GC_is_pid_bigger (copy->mid, target))
{
- LOG (GNUNET_ERROR_TYPE_DEBUG, " next copy %u\n", copy->mid);
- continue;
+ LOG (GNUNET_ERROR_TYPE_DEBUG, " next copy %u\n", copy->mid);
+ i += copy->mid - target - 1; /* MID: 90, t = 85, i += 4 (i++ later) */
+ mask = (0x1LL << (i + 1)) - 1; /* Mask = i-th bit and all before */
+ bitfield &= ~mask;
+ continue;
}
/* Now copy->mid == target, free it */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r35654 - gnunet/src/cadet,
gnunet <=