[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20424 - gnunet/src/stream
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20424 - gnunet/src/stream |
Date: |
Sat, 10 Mar 2012 16:09:21 +0100 |
Author: harsha
Date: 2012-03-10 16:09:21 +0100 (Sat, 10 Mar 2012)
New Revision: 20424
Modified:
gnunet/src/stream/stream_api.c
Log:
using GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH
Modified: gnunet/src/stream/stream_api.c
===================================================================
--- gnunet/src/stream/stream_api.c 2012-03-10 09:13:20 UTC (rev 20423)
+++ gnunet/src/stream/stream_api.c 2012-03-10 15:09:21 UTC (rev 20424)
@@ -375,7 +375,7 @@
/**
* The packet_buffers associated with this Handle
*/
- struct GNUNET_STREAM_DataMessage *messages[64];
+ struct GNUNET_STREAM_DataMessage
*messages[GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH];
/**
* The write continuation callback
@@ -692,7 +692,7 @@
unsigned int bit,
int value)
{
- GNUNET_assert (bit < 64);
+ GNUNET_assert (bit < GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH);
if (GNUNET_YES == value)
*bitmap |= (1LL << bit);
else
@@ -711,7 +711,7 @@
ackbitmap_is_bit_set (const GNUNET_STREAM_AckBitmap *bitmap,
unsigned int bit)
{
- GNUNET_assert (bit < 64);
+ GNUNET_assert (bit < GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH);
return 0 != (*bitmap & (1LL << bit));
}
@@ -748,7 +748,7 @@
ack_packet = -1;
/* Find the last acknowledged packet */
- for (packet=0; packet < 64; packet++)
+ for (packet=0; packet < GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH; packet++)
{
if (GNUNET_YES == ackbitmap_is_bit_set (&io_handle->ack_bitmap,
packet))
@@ -849,6 +849,10 @@
socket->status,
socket->receive_buffer + socket->copy_offset,
valid_read_size);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "%x: Read processor completed successfully\n",
+ socket->our_id);
+
/* Free the read handle */
GNUNET_free (socket->read_handle);
socket->read_handle = NULL;
@@ -975,7 +979,7 @@
expecting */
relative_sequence_number =
ntohl (msg->sequence_number) - socket->read_sequence_number;
- if ( relative_sequence_number > 64)
+ if ( relative_sequence_number > GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"%x: Ignoring received message with sequence number
%u\n",
@@ -984,8 +988,21 @@
return GNUNET_YES;
}
+ /* Check if we have already seen this message */
+ if (GNUNET_YES == ackbitmap_is_bit_set (&socket->ack_bitmap,
+ relative_sequence_number))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "%x: Ignoring already received message with sequence "
+ "number %u\n",
+ socket->our_id,
+ ntohl (msg->sequence_number));
+ return GNUNET_YES;
+ }
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "%x: Receiving DATA with sequence number: %u and size: %d
from %x\n",
+ "%x: Receiving DATA with sequence number: %u and size: %d "
+ "from %x\n",
socket->our_id,
ntohl (msg->sequence_number),
ntohs (msg->header.header.size),
@@ -995,7 +1012,6 @@
size -= sizeof (struct GNUNET_STREAM_DataMessage);
relative_offset = ntohl (msg->offset) - socket->read_offset;
bytes_needed = relative_offset + size;
-
if (bytes_needed > socket->receive_buffer_size)
{
if (bytes_needed <= RECEIVE_BUFFER_SIZE)
@@ -1030,7 +1046,7 @@
GNUNET_YES);
/* Start ACK sending task if one is not already present */
- if (0 == socket->ack_task_id)
+ if (GNUNET_SCHEDULER_NO_TASK == socket->ack_task_id)
{
socket->ack_task_id =
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_ntoh
@@ -1829,7 +1845,7 @@
}
if (!((socket->write_sequence_number
- - htonl (ack->base_sequence_number)) < 64))
+ - htonl (ack->base_sequence_number)) <
GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH))
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"%x: Received DATA_ACK with unexpected base sequence",
@@ -1859,7 +1875,7 @@
/* Check if we have received all acknowledgements */
need_retransmission = GNUNET_NO;
- for (packet=0; packet < 64; packet++)
+ for (packet=0; packet < GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH; packet++)
{
if (NULL == socket->write_handle->messages[packet]) break;
if (GNUNET_YES != ackbitmap_is_bit_set
@@ -1876,7 +1892,7 @@
else /* We have to call the write continuation callback now */
{
/* Free the packets */
- for (packet=0; packet < 64; packet++)
+ for (packet=0; packet < GNUNET_STREAM_ACK_BITMAP_BIT_LENGTH;
packet++)
{
GNUNET_free_non_null (socket->write_handle->messages[packet]);
}
@@ -2501,6 +2517,9 @@
{
struct GNUNET_STREAM_IOReadHandle *read_handle;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "%s()\n", __func__);
+
/* Return NULL if there is already a read handle; the user has to cancel that
first before continuing or has to wait until it is completed */
if (NULL != socket->read_handle) return NULL;
@@ -2522,6 +2541,8 @@
socket->read_io_timeout_task = GNUNET_SCHEDULER_add_delayed (timeout,
&read_io_timeout,
socket);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "%s() END\n", __func__);
return read_handle;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20424 - gnunet/src/stream,
gnunet <=