aboutsummaryrefslogtreecommitdiff
path: root/src/stream/stream_api.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-03-09 12:53:56 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-03-09 12:53:56 +0000
commit55609d4b00b22c1fc3815f3df8fbdb66291bf5c8 (patch)
tree051fb52ba4f09694a12e1ad374cf198ed564a459 /src/stream/stream_api.c
parentc26f7306f9ec16a25de4b653d3c5ef064f7c3728 (diff)
downloadgnunet-55609d4b00b22c1fc3815f3df8fbdb66291bf5c8.tar.gz
gnunet-55609d4b00b22c1fc3815f3df8fbdb66291bf5c8.zip
fixed byte conversion bugs
Diffstat (limited to 'src/stream/stream_api.c')
-rw-r--r--src/stream/stream_api.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/stream/stream_api.c b/src/stream/stream_api.c
index 8d09474c4..bb50f69bc 100644
--- a/src/stream/stream_api.c
+++ b/src/stream/stream_api.c
@@ -315,7 +315,7 @@ struct GNUNET_STREAM_Socket
315 /** 315 /**
316 * receiver's available buffer after the last acknowledged packet 316 * receiver's available buffer after the last acknowledged packet
317 */ 317 */
318 uint32_t receive_window_available; 318 uint32_t receiver_window_available;
319 319
320 /** 320 /**
321 * The offset pointer used during write operation 321 * The offset pointer used during write operation
@@ -595,16 +595,16 @@ send_ack_notify (void *cls, size_t size, void *buf)
595 "%s called with size 0\n", __func__); 595 "%s called with size 0\n", __func__);
596 return 0; 596 return 0;
597 } 597 }
598 GNUNET_assert (ack_msg->header.header.size <= size); 598 GNUNET_assert (ntohs (ack_msg->header.header.size) <= size);
599 599
600 size = ack_msg->header.header.size; 600 size = ntohs (ack_msg->header.header.size);
601 memcpy (buf, ack_msg, size); 601 memcpy (buf, ack_msg, size);
602 return size; 602 return size;
603} 603}
604 604
605/** 605/**
606 * Writes data using the given socket. The amount of data written is limited by 606 * Writes data using the given socket. The amount of data written is limited by
607 * the receive_window_size 607 * the receiver_window_size
608 * 608 *
609 * @param socket the socket to use 609 * @param socket the socket to use
610 */ 610 */
@@ -735,7 +735,7 @@ write_data_finish_cb (void *cls,
735 735
736/** 736/**
737 * Writes data using the given socket. The amount of data written is limited by 737 * Writes data using the given socket. The amount of data written is limited by
738 * the receive_window_size 738 * the receiver_window_size
739 * 739 *
740 * @param socket the socket to use 740 * @param socket the socket to use
741 */ 741 */
@@ -765,8 +765,7 @@ write_data (struct GNUNET_STREAM_Socket *socket)
765 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 765 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
766 "%x: Placing DATA message with sequence %u in send queue\n", 766 "%x: Placing DATA message with sequence %u in send queue\n",
767 socket->our_id, 767 socket->our_id,
768 (unsigned int) 768 ntohl (io_handle->messages[packet]->sequence_number));
769 io_handle->messages[packet]->sequence_number);
770 769
771 copy_and_queue_message (socket, 770 copy_and_queue_message (socket,
772 &io_handle->messages[packet]->header, 771 &io_handle->messages[packet]->header,
@@ -777,15 +776,14 @@ write_data (struct GNUNET_STREAM_Socket *socket)
777 packet = ack_packet + 1; 776 packet = ack_packet + 1;
778 /* Now send new packets if there is enough buffer space */ 777 /* Now send new packets if there is enough buffer space */
779 while ( (NULL != io_handle->messages[packet]) && 778 while ( (NULL != io_handle->messages[packet]) &&
780 (socket->receive_window_available >= ntohs (io_handle->messages[packet]->header.header.size)) ) 779 (socket->receiver_window_available >= ntohs (io_handle->messages[packet]->header.header.size)) )
781 { 780 {
782 socket->receive_window_available -= 781 socket->receiver_window_available -=
783 ntohs (io_handle->messages[packet]->header.header.size); 782 ntohs (io_handle->messages[packet]->header.header.size);
784 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 783 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
785 "%x: Placing DATA message with sequence %u in send queue\n", 784 "%x: Placing DATA message with sequence %u in send queue\n",
786 socket->our_id, 785 socket->our_id,
787 (unsigned int) 786 ntohl (io_handle->messages[packet]->sequence_number));
788 io_handle->messages[packet]->sequence_number);
789 copy_and_queue_message (socket, 787 copy_and_queue_message (socket,
790 &io_handle->messages[packet]->header, 788 &io_handle->messages[packet]->header,
791 &write_data_finish_cb, 789 &write_data_finish_cb,
@@ -985,8 +983,7 @@ handle_data (struct GNUNET_STREAM_Socket *socket,
985 } 983 }
986 984
987 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 985 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
988 "%x: Receiving DATA with sequence number: %u and size: %d " 986 "%x: Receiving DATA with sequence number: %u and size: %d from %x\n",
989 "from %x\n",
990 socket->our_id, 987 socket->our_id,
991 ntohl (msg->sequence_number), 988 ntohl (msg->sequence_number),
992 ntohs (msg->header.header.size), 989 ntohs (msg->header.header.size),
@@ -1178,7 +1175,7 @@ client_handle_hello_ack (void *cls,
1178 "%x: Read sequence number %u\n", 1175 "%x: Read sequence number %u\n",
1179 socket->our_id, 1176 socket->our_id,
1180 (unsigned int) socket->read_sequence_number); 1177 (unsigned int) socket->read_sequence_number);
1181 socket->receive_window_available = ntohl (ack_msg->receive_window_size); 1178 socket->receiver_window_available = ntohl (ack_msg->receiver_window_size);
1182 /* Get the random sequence number */ 1179 /* Get the random sequence number */
1183 socket->write_sequence_number = 1180 socket->write_sequence_number =
1184 GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX); 1181 GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX);
@@ -1193,7 +1190,7 @@ client_handle_hello_ack (void *cls,
1193 reply->header.header.type = 1190 reply->header.header.type =
1194 htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); 1191 htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK);
1195 reply->sequence_number = htonl (socket->write_sequence_number); 1192 reply->sequence_number = htonl (socket->write_sequence_number);
1196 reply->receive_window_size = htonl (RECEIVE_BUFFER_SIZE); 1193 reply->receiver_window_size = htonl (RECEIVE_BUFFER_SIZE);
1197 queue_message (socket, 1194 queue_message (socket,
1198 &reply->header, 1195 &reply->header,
1199 &set_state_established, 1196 &set_state_established,
@@ -1532,6 +1529,7 @@ server_handle_hello (void *cls,
1532 reply->header.header.type = 1529 reply->header.header.type =
1533 htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); 1530 htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK);
1534 reply->sequence_number = htonl (socket->write_sequence_number); 1531 reply->sequence_number = htonl (socket->write_sequence_number);
1532 reply->receiver_window_size = htonl (RECEIVE_BUFFER_SIZE);
1535 queue_message (socket, 1533 queue_message (socket,
1536 &reply->header, 1534 &reply->header,
1537 &set_state_hello_wait, 1535 &set_state_hello_wait,
@@ -1586,8 +1584,8 @@ server_handle_hello_ack (void *cls,
1586 "%x: Read sequence number %u\n", 1584 "%x: Read sequence number %u\n",
1587 socket->our_id, 1585 socket->our_id,
1588 (unsigned int) socket->read_sequence_number); 1586 (unsigned int) socket->read_sequence_number);
1589 socket->receive_window_available = 1587 socket->receiver_window_available =
1590 ntohl (ack_message->receive_window_size); 1588 ntohl (ack_message->receiver_window_size);
1591 /* Attain ESTABLISHED state */ 1589 /* Attain ESTABLISHED state */
1592 set_state_established (NULL, socket); 1590 set_state_established (NULL, socket);
1593 } 1591 }
@@ -1849,7 +1847,7 @@ handle_ack (struct GNUNET_STREAM_Socket *socket,
1849 } 1847 }
1850 1848
1851 socket->write_handle->ack_bitmap = GNUNET_ntohll (ack->bitmap); 1849 socket->write_handle->ack_bitmap = GNUNET_ntohll (ack->bitmap);
1852 socket->receive_window_available = 1850 socket->receiver_window_available =
1853 ntohl (ack->receive_window_remaining); 1851 ntohl (ack->receive_window_remaining);
1854 1852
1855 /* Check if we have received all acknowledgements */ 1853 /* Check if we have received all acknowledgements */
@@ -2452,8 +2450,8 @@ GNUNET_STREAM_write (struct GNUNET_STREAM_Socket *socket,
2452 io_handle->messages[packet]->header.header.type = 2450 io_handle->messages[packet]->header.header.type =
2453 htons (GNUNET_MESSAGE_TYPE_STREAM_DATA); 2451 htons (GNUNET_MESSAGE_TYPE_STREAM_DATA);
2454 io_handle->messages[packet]->sequence_number = 2452 io_handle->messages[packet]->sequence_number =
2455 htons (socket->write_sequence_number++); 2453 htonl (socket->write_sequence_number++);
2456 io_handle->messages[packet]->offset = htons (socket->write_offset); 2454 io_handle->messages[packet]->offset = htonl (socket->write_offset);
2457 2455
2458 /* FIXME: Remove the fixed delay for ack deadline; Set it to the value 2456 /* FIXME: Remove the fixed delay for ack deadline; Set it to the value
2459 determined from RTT */ 2457 determined from RTT */