[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16282 - gnunet/src/fragmentation
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16282 - gnunet/src/fragmentation |
Date: |
Mon, 1 Aug 2011 20:31:13 +0200 |
Author: grothoff
Date: 2011-08-01 20:31:12 +0200 (Mon, 01 Aug 2011)
New Revision: 16282
Modified:
gnunet/src/fragmentation/fragmentation.c
Log:
fix
Modified: gnunet/src/fragmentation/fragmentation.c
===================================================================
--- gnunet/src/fragmentation/fragmentation.c 2011-08-01 13:43:22 UTC (rev
16281)
+++ gnunet/src/fragmentation/fragmentation.c 2011-08-01 18:31:12 UTC (rev
16282)
@@ -79,6 +79,12 @@
uint64_t acks;
/**
+ * Bitfield with all possible bits for 'acks' (used to mask the
+ * ack we get back).
+ */
+ uint64_t acks_mask;
+
+ /**
* Task performing work for the fragmenter.
*/
GNUNET_SCHEDULER_TaskIdentifier task;
@@ -268,9 +274,10 @@
bits = (size + mtu - sizeof (struct FragmentHeader) - 1) / (mtu - sizeof
(struct FragmentHeader));
GNUNET_assert (bits <= 64);
if (bits == 64)
- fc->acks = UINT64_MAX; /* set all 64 bit */
+ fc->acks_mask = UINT64_MAX; /* set all 64 bit */
else
- fc->acks = (1LL << bits) - 1; /* set lowest 'bits' bit */
+ fc->acks_mask = (1LL << bits) - 1; /* set lowest 'bits' bit */
+ fc->acks = fc->acks_mask;
fc->task = GNUNET_SCHEDULER_add_now (&transmit_next,
fc);
return fc;
@@ -343,7 +350,7 @@
_("# bits removed from fragmentation ACKs"),
1, GNUNET_NO);
}
- fc->acks = abits;
+ fc->acks = abits & fc->acks_mask;
if (0 != fc->acks)
{
/* more to transmit, do so right now (if tracker permits...) */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16282 - gnunet/src/fragmentation,
gnunet <=